php程序GBK编码下生僻字'碶'等字的处理引起编码乱码问题,生僻字输出带反斜杠

[ 2023-07-26 16:19:26 | 作者: admin ]
字号: | |
p.s. var_export() 可以看到生僻字输出带反斜杠\,平时网页输出看不出来。有一次入库生僻字及其后面乱码,增加一个反斜杠就正常了
$str = str_replace("\\","\\\\",$str);


工作中发现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


来源:https://www.jianshu.com/p/ce58b328b537


php post get 繁体、日文、韩文时 自动添加 反斜杠 问题
https://www.cnblogs.com/kclteam/p/5279014.html

php中使用gbk/BIG5编码时关于繁体字编码反斜杠的问题
https://lzw.me/a/php-gbk-big5.html
[最后修改由 admin, 于 2023-09-06 10:21:56]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2936

这篇日志没有评论。

此日志不可发表评论。