【发布时间】:2017-10-02 09:52:30
【问题描述】:
我正在开发一个 Rails API 项目。 这是我的代码 sn-ps
class PeopleController < ApplicationController
respond_to :json
def index
respond_with Person.all
end
end
当我访问网址localhost:3000/people.json
Encoding::UndefinedConversionError at /people.json "\xE7" from ASCII-8BIT to UTF-8
自上周以来,我一直在尝试解决此问题,但仍在与此作斗争。 我在 stackoverflow 上发现了一堆类似的问题,例如 this 和 this 但没有一个解决方案对我有用。
这是我的配置。
Rails 4.2.7.1
ruby-2.3.1
操作系统:macOS Sierra
locale的输出
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=
内容在 ~/.bash_profile
export LC_CTYPE="utf-8"
export LC_CTYPE=en_US.UTF-8
export LANG=en_US.UTF-8
unset LC_ALL
输出 Encoding.default_external
#<Encoding:UTF-8>
【问题讨论】:
-
你从哪里得到你的意见?在将其保存到数据库之前,我通常会替换无效字符(根据 UTF-8)。如果它已经在您的数据库中:您是否将其保存为
String或JSON? -
我正在从 MySQL 中获取它,让我检查一下我的数据库的编码,实际上,我是从旧应用程序导入数据库并尝试在 API 中使用它。
标签: ruby-on-rails ruby macos encoding utf-8