3
我想寫一些內容到一個XML文件,但我確實有特殊字符的問題。PHP SimpleXML asXML寫ANSI編碼文件
我想寫通過$_GET
提交給腳本的內容,所以我認爲它是正確解碼爲UTF-8的內容。
$write = $_GET['content'];
將被輸入,如:
file.php?content=s%F6per
在PHP我執行以下操作:
$xml = simplexml_load_file('file.xml');
$newentry = $xml -> addChild('element',$write);
$xml -> asXML($xml_filename);
被打開XML文件是UTF-8編碼。當我寫入沒有任何「問題字符」的內容時,asXML將再次以UTF-8格式保存文件。只要我插入特殊字符,它就會以ANSI編碼保存,搞亂了文件,因爲我無法打開它(腳本會抱怨不正確的編碼)了。
我錯過了什麼?閱讀手冊給我的印象是,我應該做的一切正常(即不要搞亂$_GET['content']
),所以我不幸沒有任何線索。
非常感謝!
謝謝!儘管我仍然不明白爲什麼URL編碼的特殊字符會被轉換爲ISO-8859-1而不是UTF-8(當我的PHP文件是UTF-8時)。反正謝謝! – m90
只是因爲輸入不是UTF-8,也許你需要檢查你如何構建'$ _GET' – ajreal
但是我如何編碼一個查詢字符串呢?感謝您的安全提示,我意識到這一點,並「已採取措施」。 – m90