2010-04-08 4 views
2

UTF8 문자를 허용하는 입력 상자가 있습니다. 문자가 중국어, 일본어 또는 한국어로 프로그래밍 방식으로 (일부 유니 코드 범위의 일부인지) 감지 할 수 있습니까? MySQL의 전체 텍스트 검색이 작동하는지 여부에 따라 검색 방법을 변경합니다 (CJK 문자에는 작동하지 않음).PHP에서 CJK 문자를 감지합니다.

감사합니다.

답변

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); 
} 
관련 문제