【发布时间】:2018-01-11 15:31:54
【问题描述】:
irb(main):010:0> str = "sar\xE0".force_encoding "ASCII-8BIT"
irb(main):011:0> str.encode 'ISO-8859-1', "ASCII-8BIT"
Encoding::UndefinedConversionError: "\xE0" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to ISO-8859-1
from (irb):11:in `encode'
from (irb):11
from /Users/ben/.rbenv/versions/2.4.1/bin/irb:11:in `<main>'
我有一个字符串为ASCII-8BIT(二进制),我想把它带到另一个编码,但似乎每次转换都试图将它转换为utf-8,所以它失败了(基本上它迫使我替换未定义的字符)。
为什么会这样?如何避免?
【问题讨论】:
-
删除了整个文件引用,它们没有必要
-
好的,如果
"sar\xE0".b是您的输入,您的预期输出是什么? -
应该是
sarà,但这是一个例子......不要认为是相关的。 -
"sarà"UTF-8 还是 ISO-8859-1 编码? -
我需要 ISO-8859-1