我有一個包含300多個HTML文件的目錄,我需要解析數據並將其放入一個新的HTML模板,該模板與預先呈現的HTML實體(例如,出現在某些文件中的平方根√
。我在Ruby 1.9的閱讀噸的職位在大約編碼最後幾個小時,想的東西:File.Open encoding呈現HTML實體
File.read("_pending/testdir/filename.html", :encoding=>"UTF-8")
和
trans = Iconv.new('UTF-8', 'IBM437')
input_text = File.read("_pending/testdir/filename.html")
output_text = trans.iconv(input_text)
puts output_text
所有沒有運氣。一旦轉換成平方根符號,在瀏覽器中以及原始HTML標記中仍然顯示爲√
,但Iconv
解決方案的輸出AªAo
在控制檯puts
時仍然如此。
設置
的Windows Server 2008 R2
紅寶石1.9.3p194(2012-04-20)[I386-的mingw32]
編碼名稱返回IBM437
當我做HTML_FILE.external_encoding.name
。
你確定他們是'IBM437'嗎? [Win-1252](http://en.wikipedia.org/wiki/Windows-1252)或[ISO-8859-1](http://en.wikipedia.org/wiki/ISO-8859-1)是更可能的候選人。另一種方法是做一個預先通過並將複選標記插入實體。 –
我同意,但似乎很奇怪,但是當我運行下面的代碼時,我得到了'IBM437'。 'test = File.open(「filename.html」) puts test.external_encoding.name test.close' – NotJustClarkKent
感謝Tin Man,事實證明,我只是一個白癡,Ruby不是一個問題,所有......感謝您代我進行此項調查。 – NotJustClarkKent