Domanda

Voglio avere diverso processo per parola inglese e parola giapponese in questa funzione

function process_word($word) {
   if($word is english) {
     /////////
   }else if($word is japanese) {
      ////////
   }
}

grazie

È stato utile?

Soluzione

Una soluzione rapida che non ha bisogno l'estensione mb_string:

if (strlen($str) != strlen(utf8_decode($str))) {
    // $str uses multi-byte chars (isn't English)
}

else {
    // $str is ASCII (probably English)
}

O una modifica della soluzione fornita da @Alexander Konstantinov :

function isKanji($str) {
    return preg_match('/[\x{4E00}-\x{9FBF}]/u', $str) > 0;
}

function isHiragana($str) {
    return preg_match('/[\x{3040}-\x{309F}]/u', $str) > 0;
}

function isKatakana($str) {
    return preg_match('/[\x{30A0}-\x{30FF}]/u', $str) > 0;
}

function isJapanese($str) {
    return isKanji($str) || isHiragana($str) || isKatakana($str);
}

Altri suggerimenti

Questa funzione controlla se una parola contiene almeno una lettera giapponese (ho trovato gamma unicode per le lettere giapponesi in Wikipedia ).

function isJapanese($word) {
    return preg_match('/[\x{4E00}-\x{9FBF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}]/u', $word);
}

Si potrebbe provare di Google API di traduzione che ha una funzione di rilevamento: http://code.google.com/apis/ lingua / tradurre / v2 / using_rest.html # rileva lingua-

Prova con mb_detect_encoding funzione, se la codifica è EUC-JP o UTF-8 / UTF-16 può essere giapponese, altrimenti inglese. Il meglio è se si può garantire che la codifica ogni lingua, come codifiche UTF può essere utilizzato per molte lingue

testo inglese di solito consiste solo di caratteri ASCII (o per meglio dire, i caratteri nella gamma ASCII).

Si può cercare di convertire il set di caratteri e verificare se ci riesce.

Date un'occhiata a iconv: http://www.php.net /manual/en/function.iconv.php

Se si riesce a convertire una stringa in ISO-8859-1 che potrebbe essere inglese, se è possibile convertire in iso-2022-jp è stata riordinata giapponese (potrei sbagliarmi per i set di caratteri esatti, si dovrebbe google per loro) .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top