我處理包含特殊字符,如子彈,長劃等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