我的应用程序需要处理一些国际字符,即 ä、ü、ö 和 ß,它们仍然是 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/