ruby - "Invalid multibyte char (US-ASCII)"ä、ü、ö、ß 是 Ascii 的错误!

标签 ruby encoding ascii

我的应用程序需要处理一些国际字符,即 ä、ü、ö 和 ß,它们仍然是 ascii。

当我在处理这些字符时测试 ruby​​ 的行为时,我得到了这个错误:

test.rb:1: invalid multibyte char (US-ASCII)
test.rb:1: invalid multibyte char (US-ASCII)

对于这段代码:

puts "i like my chars: ä, ü, ö and ß!"

但奇怪的是:当使用交互式 Ruby Shell 时,我没有得到任何错误!

编辑:在我的应用程序中,我正在从外部 API 检索数据。上面的代码只是一个例子!

最佳答案

不,这些字符在ASCII 中。 ASCII 没有任何高于 Unicode U+007F(十进制 127)的值。查看wikipedia ASCII entry了解更多详情。

我怀疑交互式 Ruby shell 正在采用您的 shell 的 native 编码,而不是 ASCII。

你有办法指定 .rb 文件的编码吗?如果是这样,请使用它 - 或者更改您的脚本,使它们真正为 ASCII。

关于ruby - "Invalid multibyte char (US-ASCII)"ä、ü、ö、ß 是 Ascii 的错误!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3484385/

相关文章:

Java:将UTF8字符串转换为另一种编码的字节数组

encoding - ID3v2规范

php - mb_detect_encoding 将 ASCII 检测为 UTF-8?

javascript - php bin2hex() 在 javascript 中解码

ruby - Sinatra 在发布时清除 session

Ruby:如何在命令行中指定文件的字符编码(-Eex[:in] 选项)?

javascript - JSON 的二进制编码?

javascript - 十六进制的字符表示

ios - Gem::Ext::BuildError: 错误:无法在 mac 上构建 gem native 扩展。无法安装 racc

ruby - 使用 HexaPdf 用粗体文本填充 PDF AcroForm 文本字段