Php simplexml\u加载\u字符串奇怪字符
我在使用simplexml\u load\u字符串处理非标准字符时遇到困难 我已经使用file\u get\u内容加载了一个报纸xml提要。如果我打印以筛选内容,我会得到其中一篇文章的标题,如下所示:Php simplexml\u加载\u字符串奇怪字符,php,Php,我在使用simplexml\u load\u字符串处理非标准字符时遇到困难 我已经使用file\u get\u内容加载了一个报纸xml提要。如果我打印以筛选内容,我会得到其中一篇文章的标题,如下所示: <title>‘If Legault were running in Alberta, he’d be more popular’: How right-wing is the CAQ?</title> 并打印$
<title>‘If Legault were running in Alberta, he’d be more popular’: How right-wing is the CAQ?</title>
并打印$feed的结果,标题已更改为:
[title] => �If Legault were running in Alberta, he�d be more popular�: How right-wing is the CAQ?
关于如何停止这样显示这些字符有什么建议吗?这看起来SimpleXML正在创建一个UTF-8字符串,然后以ISO-8859-1(拉丁语-1)或类似CP-1252的格式呈现 将结果保存到文件并通过web服务器提供该文件时,浏览器将使用文件中声明的编码 包括在网页中 由于您的网页编码不是UTF-8,因此需要将字符串转换为您正在使用的任何编码,例如ISO-8859-1(拉丁语-1) 这可以通过iconv()轻松完成: 保存到数据库 数据库列未使用UTF-8排序规则,因此应使用iconv将字符串转换为数据库使用的字符集 假设您的数据库排序规则与您在中呈现的编码相同,则从数据库中读取时无需执行任何操作 解释 在UTF-8中,0xc2前缀字节用于访问“Latin-1增补”块的上半部分,该块包括重音字母、货币符号、分数、上标2和3、版权和注册商标符号以及非中断空格等字符
然而,在ISO-8859-1中,字节0xC2表示一个。因此,当您的UTF-8字符串被误解为其中之一时,后面会跟着一些其他无意义字符。这是一个字符集问题。它需要是utf8,您可以对内容运行utf8_解码,但最好通过将输入(提要)中的字符集匹配到输出(我猜是html页面)来解决此问题
[title] => �If Legault were running in Alberta, he�d be more popular�: How right-wing is the CAQ?
$xmlout = iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $xmlout);