美文网首页
PHP处理GBK编码下的'碶'字会引起编码问题

PHP处理GBK编码下的'碶'字会引起编码问题

作者: 闫希鹏 | 来源:发表于2018-09-11 15:17 被阅读18次

    工作中发现PHP处理GBK格式的生僻字 ‘碶’ 时会遇到的问题。没能深入研究编码层面的原因。不知道是PHP的bug还是GBK编码的锅。如果有大神发现这篇文章欢迎讨论
    //1、直接把‘碶’赋值给变量

    $str = '碶';

    echo $str;//会报500错误

    //2、如果‘碶’字后面随便接一个字符或者汉字则不会报错

    $str = '碶大';

    echo $str;//输出 碶大

    //3、var_export查看结果

    var_export($str);//输出 '碶\大'

    $str = var_export($str, true);

    echo $str;//输出 '碶\大'

    //4、用PHP字符串处理函数试试

    $str = str_replace('\\', '', $str);

    echo $str;//输出 '创�'

    strpos($str, '\\');//结果不为false,能识别出'\'

    //5、大家还可以主动在$str = '碶大';字符串中加入'\'试试。测试结果我没记录,也没深入研究

    $str = '碶\大';

    $str = '\碶大';

    $str = '碶大\\';

    $str = '碶\\大';

    //结论,PHP在GBK下总是能在'碶'字后面识别出反斜杠。如果直接输出打印给浏览器解析浏览器就不会有这个问题

    我的解决办法就是,先把变量里的字符串转化成utf-8格式的,在utf-8格式下进行PHP字符串处理,处理之后再转回GBK格式输出

    又看到了个相同问题的链接:

    https://www.jb51.net/article/40419.htm

    相关文章

      网友评论

          本文标题:PHP处理GBK编码下的'碶'字会引起编码问题

          本文链接:https://www.haomeiwen.com/subject/crdugftx.html