欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php mysql UTF-8编码问题

程序员文章站 2022-05-27 10:37:16
...
有这样一段UTF-8编码 "\xe6\x93\x8d\xe4\xbd\x9c”
在页面里面直接赋值输出时正确的
$subject="\xe6\x93\x8d\xe4\xbd\x9c";
$subject=mb_convert_encoding($subject, "GB2312", "UTF-8");
echo $subject;
?>
但是把条记录放在数据库中,读出转换后 没有改变,输入还是“\xe6\x93\x8d\xe4\xbd\x9c”;
哪位大神遇到过类似问题,请指教,谢谢


回复讨论(解决方案)

看不懂想表达什么

你看下你数据库的编码是什么 估计不是GB2312的

程序中的 "\xe6\x93\x8d\xe4\xbd\x9c"
utf-8编码的 操作 的十六进制内码的一种表示形式(一定是要被双引号括起的)
否则只是 \xe6\x93\x8d\xe4\xbd\x9c 这样的串

只有在程序里书写的才会被转换,外来的都不会
对于字符串 \xe6\x93\x8d\xe4\xbd\x9c 可以这样转换

$s = '\xe6\x93\x8d\xe4\xbd\x9c';echo hex2bin(str_replace('\x', '', $s));echo urldecode(str_replace('\x', '%', $s));

程序中的 "\xe6\x93\x8d\xe4\xbd\x9c"
utf-8编码的 操作 的十六进制内码的一种表示形式(一定是要被双引号括起的)
否则只是 \xe6\x93\x8d\xe4\xbd\x9c 这样的串

只有在程序里书写的才会被转换,外来的都不会
对于字符串 \xe6\x93\x8d\xe4\xbd\x9c 可以这样转换

$s = '\xe6\x93\x8d\xe4\xbd\x9c';echo hex2bin(str_replace('\x', '', $s));echo urldecode(str_replace('\x', '%', $s));

正如版主所说,这样是对的,谢谢大家