我們使用CMS,這對於編碼來說是一種真正的痛苦,但我仍然需要爲它生成一個結構。Ruby不會將有效的UTF-8寫入文件?
我設置:Encoding.default_internal
爲UTF-8,我試着用# Encoding: UTF-8
,我寫了File.open("filename", "w:UTF-8")
文件,但我總是有這樣的事情:
DOMDocument::loadXML() [domdocument.loadxml]: Input is not proper UTF-8, indicate encoding ! Bytes: 0xF6 0x6A 0xE4 0x6B in Entity, line: 7DOMDocument::loadXML() [domdocument.loadxml]: Empty string supplied as input
該文件包含öäü
,並且,如果刪除它們,它像預期的那樣工作。
如果我使用記事本++函數「轉換爲UTF-8不帶BOM」並手動寫入「Umlaute(öäü)」,它就可以工作。
將值更改爲像ö
這樣的HTML實體是沒有選擇的,因爲它們會以這種方式出現在後端。 PS:它是用JRuby編寫的。
您的XML文件在標題行上是否具有正確的編碼?<?xml version =「1.0」encoding =「UTF-8」?> –
是的,我忘了提及這一點。我甚至不生成XML我只是複製一個工作的默認「模板」,並替換標題 – b1nary
如何替換標題?替換後XML可能會被破壞嗎?您是否曾嘗試通過類似[xmllint](http://xmlsoft.org/xmllint.html)的方式運行XML來分別驗證流程和XML數據?文本是否插入到CDATA塊中,並且已將值轉換爲編碼格式,還是仍然是原始文件? –