我有一個ISO-2022-JP-2串並需要將其轉換爲UTF-8,但我得到一個錯誤。從ISO-2022-JP-2轉換爲UTF-8的Ruby 2.1
更具體:我想讀這是使用引用可打印傳送的電子郵件。此電子郵件包含單詞tōtatsu
(注意哦,天上的口音),我將指定文字是這樣的:
given = "t=1B$(D+W=1B(Btatsu"
text = given.unpack("M*").first #convert from quoted-printable
基本上,這需要通過正確\e
轉義字符和text
成爲t␛$(D+W␛(Btatsu
的字符串替換=1B
。
Wikipedia says表示␛$(D
用於切換到JIS X 0212-1990,同樣␛(B
用於切換回ASCII。請注意,在␛$(D
ISO-2022-JP-2是新的,它是原來的ISO-2022-JP的不一部分。
但是,字符串的編碼仍然是ASCII,所以我想我必須強制正確的編碼,因爲Ruby沒有知道實際串的方式ISO-2022-JP-2?
puts text.encoding # ASCII-8BIT
text = text.force_encoding('iso-2022-jp-2')
現在事實證明,
text.encode('utf-8')
不能給定的字符串轉換:code converter not found (ISO-2022-JP-2 to UTF-8) (Encoding::ConverterNotFoundError)
我怎麼能這個字符串轉換爲UTF-8?
只要你一出現,*問題*自己墜入*問題*。你知道爲什麼? - 因爲*問題*瞭解,他們現在將被你們抹去:-) –