Pregunta

Quiero tener diferentes procesos por palabra Inglés y la palabra japonesa en esta función

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

gracias

¿Fue útil?

Solución

Una solución rápida que no necesita la extensión 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 modificación de la solución proporcionada por @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);
}

Otros consejos

Esta función comprueba si una palabra contiene al menos una letra japonesa (I encontraron rango Unicode para las letras japonesas en Wikipedia ).

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

Usted podría intentar API de traducción de Google que tiene una función de detección: http://code.google.com/apis/ idioma / traducir / v2 / using_rest.html # detectar el lenguaje-

Trate con mb_detect_encoding función, si la codificación es EUC-JP o UTF-8 / UTF-16 que puede ser japonés, de lo contrario Inglés. Cuanto mejor es si se puede garantizar, que codifica cada una lengua, como codificaciones UTF se pueden utilizar para muchos idiomas

texto Inglés por lo general se compone sólo de caracteres ASCII (o mejor dicho, personajes de rango ASCII).

Se puede tratar de convertir el juego de caracteres y comprobar si tiene éxito.

Tome un vistazo a iconv: http://www.php.net /manual/en/function.iconv.php

Si se puede convertir una cadena a la norma ISO-8859-1 que podría ser Inglés, si se puede convertir a la norma ISO-2022-JP es además probablemente japonés (puedo estar equivocado para los juegos de caracteres exactos, se debe de google para ellos) .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top