我想將 Unicode 字符與Nokogiri::XML::DocumentFragment.
frag = Nokogiri::XML::DocumentFragment.parse("<foo>ü</foo>")
=> <foo>ü</foo>
Unicode 字符被轉義。我需要設定encoding: 'UTF-8'以獲得可讀的字符。
frag.to_html(encoding: 'UTF-8')
=> "<foo>ü</foo>"
決議字串時是否有編碼選項?
Nokogiri::HTML::DocumentFragment.parse按照我的預期處理字串,但我需要使用XML.
frag = Nokogiri::HTML::DocumentFragment.parse("<foo>ü</foo>")
=> <foo>ü</foo>
uj5u.com熱心網友回復:
根據此處的檔案,文本已在內部存盤為 UTF-8。
字串始終在內部存盤為 UTF-8。回傳文本值的方法將始終回傳 UTF-8 編碼的字串。回傳 XML 的方法(如 to_xml、to_html 和 inner_html)將回傳一個像源檔案一樣編碼的字串。
因此,例如#text,如果您呼叫 yourfrag而不是列印整個frag物件,您會看到 ü 列印正確
puts frag.text
# => ü
否則,您可以直接使用#XML而不是#DocumentFragment直接傳遞編碼。
doc = Nokogiri.XML('<foo>ü</foo>', nil, 'UTF-8')
puts doc
# => <?xml version="1.0" encoding="UTF-8"?>
# => <foo>ü</foo>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/474203.html
