带有中文字符的红宝石/机架网络应用程序中的InvalidByteSequenceError
问题描述:
在我的Ruby/Rack应用程序中,我在Ruby和代码中使用了中文和日文的静态字符。当我运行我的应用程序时,出现异常:带有中文字符的红宝石/机架网络应用程序中的InvalidByteSequenceError
Encoding::InvalidByteSequenceError at/
/my_app/index.html.erb is not valid US-ASCII
它只发生在生产服务器上,在本地 - 不是。 我的本地机器 - Linux,远程服务器 - FreeBSD。
我试过“保存编码 - > utf-8”但它没有帮助。
我没有在ruby代码中使用编码/解码功能 - 这些字符只是静态地嵌入到我的文件中。
答
这可能是字符串输入编码的问题。例如,您通过params
收到的字符串。
我不得不通过给编码强制为UTF-8:
"Some String".force_encoding("UTF-8")
其停止的错误消息。
你的问题是什么? – sawa
您在生产/开发机器上使用哪个版本的ruby? –
@StanislavMekhonoshin 2.4.2 – Joharu