Ruby on rails 无法读取ASCII或UTF-8格式的字符串

Ruby on rails 无法读取ASCII或UTF-8格式的字符串,ruby-on-rails,ruby,string,encoding,Ruby On Rails,Ruby,String,Encoding,如果我检查正在读取的文件的字符集,我会得到: text/plain; charset=us-ascii 因此,我以如下方式阅读: File.open(@file_path, r:ASCII) do |f| f.each_line do |line| line = line.rstrip.force_encoding("ASCII") 在我到达这条线之前,它可以正常工作: "Seat 2: tchin\xE9 ($423 in chips)" 我在哪里得到这个错误: Argume

如果我检查正在读取的文件的字符集,我会得到:

text/plain; charset=us-ascii
因此,我以如下方式阅读:

File.open(@file_path, r:ASCII) do |f|
  f.each_line do |line|
    line = line.rstrip.force_encoding("ASCII")
在我到达这条线之前,它可以正常工作:

"Seat 2: tchin\xE9 ($423 in chips)"
我在哪里得到这个错误:

ArgumentError: invalid byte sequence in US-ASCII
Iconv::IllegalSequence: "\xE9 ($423 in chips"
这一行在我的文本编辑器中看起来像这样:

"Seat 2: tchin? ($423 in chips)"
"Seat 2: tchin? ($423 in chips)"
如果我尝试将其作为UTF-8而不是ASCII读取,则会出现相同的错误:

ArgumentError: invalid byte sequence in UTF-8
你知道我应该做什么吗。我曾尝试使用iconv将其从ASCII转换为UTF-8,但出现以下错误:

ArgumentError: invalid byte sequence in US-ASCII
Iconv::IllegalSequence: "\xE9 ($423 in chips"
将文件读取为“r:ISO8859-1”有效。

ASCII是7位编码(最多127128个字符),而不是8位编码(最多255256个字符)

E9(十进制233,可能是aé)高于128。如果您没有ASCII码,那么ruby错误消息是正确的。 我想是cp1252

更新: 我敢肯定,这是一件好事。“座位2:tchiné(423美元的筹码)”这句话很有道理(我不知道它是什么,但它似乎是扑克中的东西

这一行在我的文本编辑器中看起来像这样:

"Seat 2: tchin? ($423 in chips)"
"Seat 2: tchin? ($423 in chips)"
编辑器可能不显示é,因此会显示替换字符