PHP判断一个汉字是否在GB2312汉字编码字符集里面

20次阅读
没有评论

共计 527 个字符,预计需要花费 2 分钟才能阅读完成。

这个需求是源于使用 LATEX 排版中文时出现的。CJK 宏包对中文字体的支持比较麻烦,已经不再推荐使用,但是,一些老项目还在用,不想动它。

CJK 自带的 UTF- 8 编码字体 gbsn 和 gkai 只包含 GB2312 字符集,这就导致有些生僻字会出现无法显示的情况。

对于一些检测报告,要是姓名有生僻字没有显示出来的话,这会导致很严重的后果。所以想要有个预警机制,判断姓名里面是否包含生僻字,也就是判断一个汉字是否在 GB2312 汉字编码字符集里面。

iconv 函数

用于在不同字符编码之间进行转换,可将一个字符串从一种字符编码转换成另一种字符编码,比如将 UTF- 8 编码的字符串转换成 GBK 编码的字符串。

错误控制运算符 @将屏蔽 iconv 函数可能产生的 notice 提示。

实现代码

<?php
function isGB2312($char) {if (@iconv('UTF-8', 'GB2312', $char)) {echo $char . ":在 GB2312 里面 \n";} else {echo $char . ":不在 GB2312 里 \n";}
}

$char = " 就 ";
$char2 = " 甦 ";
isGB2312($char); // 就:在 GB2312 里面
isGB2312($char2);// 甦:不在 GB2312 里 

正文完
post-qrcode
 0
三毛
版权声明:本站原创文章,由 三毛 于2023-12-21发表,共计527字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)