带有中文字符的红宝石/机架网络应用程序中的InvalidByteSequenceError

问题描述:

在我的Ruby/Rack应用程序中,我在Ruby和代码中使用了中文和日文的静态字符。当我运行我的应用程序时,出现异常:带有中文字符的红宝石/机架网络应用程序中的InvalidByteSequenceError

Encoding::InvalidByteSequenceError at/
/my_app/index.html.erb is not valid US-ASCII 

它只发生在生产服务器上,在本地 - 不是。 我的本地机器 - Linux,远程服务器 - FreeBSD。

我试过“保存编码 - > utf-8”但它没有帮助。

我没有在ruby代码中使用编码/解码功能 - 这些字符只是静态地嵌入到我的文件中。

+0

你的问题是什么? – sawa

+0

您在生产/开发机器上使用哪个版本的ruby? –

+0

@StanislavMekhonoshin 2.4.2 – Joharu

这可能是字符串输入编码的问题。例如,您通过params收到的字符串。

我不得不通过给编码强制为UTF-8:

"Some String".force_encoding("UTF-8")

其停止的错误消息。