检测 PHP 中的 CJK 字符

发布于 2024-08-28 02:31:34 字数 130 浏览 13 评论 0原文

我有一个允许 UTF8 字符的输入框 - 我可以以编程方式检测这些字符是中文、日文还是韩文(也许是某些 Unicode 范围的一部分)吗?我会根据 MySQL 的全文搜索是否有效(它不适用于 CJK 字符)来更改搜索方法。

谢谢!

I've got an input box that allows UTF8 characters -- can I detect whether the characters are in Chinese, Japanese, or Korean programmatically (part of some Unicode range, perhaps)? I would change search methods depending on if MySQL's fulltext searching would work (it won't work for CJK characters).

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夏夜暖风 2024-09-04 02:31:34
// 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);
}
// 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);
}
孤君无依 2024-09-04 02:31:34

CJK 字符仅限于某些 Unicode 块。您需要检查字符是否在这些块内,并且还应该考虑代理(32 位字符)。

CJK characters are restricted to certain Unicode Blocks. You need to check the characters if they are inside these blocks, and should consider surrogates (32bit characters) too.

明明#如月 2024-09-04 02:31:34

您想检测一个字符是否是(中文或日文或韩文)字符吗?或者你想区分汉字和日文字符吗?前者很容易;由于汉族统一,后者在许多情况下是不可能的。

Do you want to detect whether a character is a (Chinese or Japanese or Korean) character? Or do you want to tell Chinese characters apart from Japanese characters? The former is easy; the latter is in many cases impossible, due to Han Unification.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文