目前我正在使用simplexml_load_file();
然后在php中循环这些feed,并将一些部分插入到一个utf8的mysql数据库中,所有表格都是utf8。
当插入表格后,我可以看到'已替换为’
并且 - 已替换为–
当从表格中选择并在php文件中显示时,会显示这些奇怪的字符。
我在插入时尝试过utf8_decode和utf8_encode
并从数据库中选择,但这没有用,我做错了什么?
答案 0 :(得分:0)
在您输入数据的db表上设置的charset和default collation是什么?
<强> [编辑] 强>
在此处找到:http://www.php.net/manual/en/function.simplexml-load-file.php#92969
neil art neilanddeb dort com 17-Aug-2009 01:00
因为我的XML文件的编码是UTF-8和 我的网页编码是iso-8859-1我得到了一些奇怪的字符,例如“而不是正确的单引号”。这个解决方案很难找到,但很容易实现。
http://uk3.php.net/manual/en/function.iconv.php
使用iconv()函数,您可以从一个编码转换为另一个编码,TRANSLIT选项似乎最适合我需要的。这是我的例子:
<?php // convert string from utf-8 to iso8859-1 $horoscope = iconv( "UTF-8", "ISO-8859-1//TRANSLIT", $horoscope ); ?>
我在这个页面找到了解决方案......
http://coding.derkeiler.com/Archive/PHP/comp.lang.php/2008-04/msg00365.html
希望这有帮助
答案 1 :(得分:0)
在插入之前添加mysql_query('SET CHARACTER SET utf8');
并选择查询
答案 2 :(得分:0)
试
$xml = file_get_contents($file);
$xml = iconv("UTF-8", "UTF-8//IGNORE", $xml);
simplexml_load_string($xml);