2010-04-08 7 views
2

У меня есть окно ввода, которое позволяет использовать символы UTF8 - могу ли я определить, являются ли символы на китайском, японском или корейском программном (возможно, частью некоторого диапазона Unicode)? Я бы изменил методы поиска в зависимости от того, будет ли работать полнотекстовый поиск MySQL (он не будет работать для символов CJK).Обнаружение символов CJK в PHP

Спасибо!

ответ

2

Персонажи CJK ограничены определенными Unicode Blocks. Вам нужно проверить символы, если они находятся внутри этих блоков, и также должны учитывать суррогаты (32-битные символы).

1

Вы хотите определить, является ли персонаж (китайский или японский или корейский) символом? Или вы хотите рассказать китайским иероглифам помимо японских символов? Первое легко; последнее во многих случаях невозможно из-за объединения Хан.

+0

Первый, к счастью. – ash

0
// is chinese, japanese or korean language 
function isCjk($string) { 
    return isChinese($string) || isJapanese($string) || isKorean($string); 
} 

function isChinese($string) { 
    return preg_match("/\p{Han}+/u", $string); 
} 

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

function isKorean($string) { 
    return preg_match('/[\x{3130}-\x{318F}\x{AC00}-\x{D7AF}]/u', $string); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^