如何在PHP中将GB2312中的字符正确转换为UTF-8?

How to properly convert characters in GB2312 to UTF-8 in PHP?

提问人:Surono 提问时间:3/12/2019 最后编辑:Surono 更新时间:3/14/2019 访问量:1001

问:

我有中文单词的变量,它们的字符集是GB2312。我想将它们转换为 UTF-8,因为我想将它们保存到 mysql 表中,并采用 utf-8 编码。PHP是怎么做到的?我正在使用 PHP 7。

以下是我尝试过的方法:

  1. 我试过使用但是,如果它包含一些字符(可能是无效的 UTF-8 字符?$myvar = iconv('gb2312', 'utf-8', $myvar);
  2. 我试过使用它比它更好,但是当包含我上面提到的一些字符时,它们变成了问号($myvar = mb_convert_encoding($myvar, 'UTF-8', 'GB2312');iconv$myvar?)

请帮帮我,谢谢

更新这是我的中文字符串示例:

  • GB2312 (预期结果): 第3章..林鴻
  • Using become: 第3章?林?mb_convert_encoding
  • 使用 become emptyiconv
PHP UTF-8 字符编码 GB2312 MB-CONVERT-编码

评论

2赞 deceze 3/12/2019
请提供“不起作用”的字符串示例,也许是符号,以确保它准确反映您的编码。"\x..\x.."
0赞 Surono 3/14/2019
@deceze: 我在上面添加了示例,你能帮我吗?
1赞 deceze 3/14/2019
请提供该字符串的字节数。似乎无法将该字符串从 Unicode 转换为 GB2312,因此不清楚您真正使用的确切字符串。

答: 暂无答案