我有一个允许 UTF8 字符的输入框——我可以通过编程检测这些字符是中文、日文还是韩文(可能是某些 Unicode 范围的一部分)?我会根据 MySQL 的全文搜索是否有效(它不适用于 CJK 字符)来更改搜索方法。
谢谢!
我有一个允许 UTF8 字符的输入框——我可以通过编程检测这些字符是中文、日文还是韩文(可能是某些 Unicode 范围的一部分)?我会根据 MySQL 的全文搜索是否有效(它不适用于 CJK 字符)来更改搜索方法。
谢谢!
// 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);
}
CJK 字符仅限于某些Unicode 块。您需要检查字符是否在这些块内,并且还应考虑代理(32 位字符)。
您想检测一个字符是否是(中文或日文或韩文)字符?或者你想区分汉字和日文?前者很容易;由于汉化,后者在许多情况下是不可能的。