开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

mbstring 来救援

我最近一直在大量使用SimpleXML,并且多次遇到字符编码问题。基本上,如果一个字符串混合了UTF-8和非UTF-8字符,SimpleXML就会报错,声称“字符串无法解析为XML”。

我尝试了很多解决方案,希望通过mbstringINI设置实现自动化;这些计划都失败了。iconv无法正常工作。唯一可行的是将编码转换为latin1——但这对实际的UTF-8字符造成了严重破坏。

然后,通过一系列反复试验、全有或全无的尝试,我偶然发现了一个简单的解决方案。基本上,我需要采取两个步骤:

  • 检测字符串的当前编码
  • 将该编码转换为UTF-8

这是通过以下方式完成的:

$enc = mb_detect_encoding($xml);
$xml = mb_convert_encoding($xml, 'UTF-8', $enc);

即使检测到的编码是UTF-8也会进行转换;转换确保字符串中的所有字符在完成时都被正确编码。

这是一个不直观的解决方案,但它确实有效!QED.

未经允许不得转载:我爱分享网 » mbstring 来救援

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏