然而,如在http://dansays.co.uk/research/MNA/rss.php上所提到的,我遇到了一些字符显示不正确的问题。
举例来说:
âGuitar Hero: Van Halenâ Trailer And Tracklist Available
NV 10/10/09 – Salt Lake City, UT 10/11/09 – Denver, CO 10/13/09 –
我在将数据插入数据库之前尝试使用htmlentities和htmlspecialchars,但似乎并没有帮助解决问题。
我应该如何解决这个问题?
感谢任何建议。
更新
我尝试了Greg建议的方法,问题仍然存在...
以下是我在PDO中使用SET NAMES的代码:
$dbh = new PDO($dbstring, $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->query('SET NAMES "utf8"');
在将simplexml数据排序并插入数据库之前,我做了一些echo操作,现在我相信这与cURL有关...
下面是我的cURL代码:
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');
$data = curl_exec($ch);
curl_close($ch);
$doc = new SimpleXmlElement($data, LIBXML_NOCDATA);
问题已解决
我必须在RSS/HTML页面中设置内容字符集为“UTF-8”以解决此问题。我猜这不是一个真正的修复,因为原始数据中的字符问题仍然存在。期待在PHP6中得到适当的支持!