我处理包含特殊字符,如子弹,长划等PHP MySQL的编码问题与XML
示例XML第三方XML:
$xml = "<xml><node>• Special Characters</node></xml>";
我的目标是解析这个XML使用PHP并将其插入到MySQL数据库中。我正在使用DomDocument
解析XML以使用simplexml_import_dom
从DOM节点获取SimpleXMLElement
对象。
DomDocument
的加载方法失败,除非我使用utf8_encode来编码xml。
$doc = new DOMDocument();
$doc->loadXML(utf8_encode($xml));
为了能够解析xml,我知道我需要utf8_encode
函数。在能够解析XML之后,MySQL表中的插入将导致出现特殊字符?或垃圾。即使是解析后显示在浏览器上的XML中的特殊字符也是垃圾。
MySQL表列是文本数据类型,属于latin1_swedish_ci整理。我在SO上看到了类似的问题,并尝试使用他们的解决方案,如运行mysql_query('SET NAMES utf8')
或更改列编码,但它们不适合我。
请指教。
哪里'$ xml'来自和whar让你认为你需要'函数utf8_encode()'? – 2012-03-23 23:13:13
你对XML的编码有任何想法吗? 您的表格也必须在utf8上。 – haltabush 2012-03-23 23:14:03
您是否尝试将数据库归类设置为'utf8_general_ci'或其他? – hohner 2012-03-23 23:14:26