Rails 求解:Rails 用 Sqlite3,页面 CRUD 中文都显示正常,用 sqlite 数据库管理工具进入表内查看记录的中文乱码

JiangShi · 2012年08月15日 · 最后由 JiangShi 回复于 2012年08月15日 · 5193 次阅读

Rails 用 Sqlite3,页面 CRUD 中文都显示正常,用 sqlite 数据库管理工具进入表内查看记录的中文乱码

而且如果通过 Sqlite3 的数据库管理工具导入中文记录后,在 Rails 页面无法显示

提示: invalid byte sequence in UTF-8

换另一个 sqlite 数据库管理工具,我一般用 firefox 的叫做“SQLite Manager”的插件

用 sqlite3 命令行显示也是乱码

楼主什么系统,cmd 的默认编码是 gb2312

数据表的编码是什么呢?页面中的输出都是来自页面的输入,数据库不多做转换的话就没有问题。但是数据库管理工具显示出去的编码跟页面不同,告诉它们正确的编码就该没问题了。

数据表的格式是 UTF8,我换了个 SQLITE3 的管理工具仍然一样,有点怪异,我看 log 的 update 和 creat 操作是 utf8 写入

数据表的格式是 UTF8,我换了个 SQLITE3 的管理工具仍然一样,有点怪异,我看 log 的 update 和 creat 操作是 utf8 写入

Started PUT "/users/1" for 127.0.0.1 at 2012-08-14 15:12:32 +0800 Processing by UsersController#update as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"QwqoNidpb7o5YmH+IEOIXcSFF/Xc6hpt5ffgOcOALUQ=", "user"=>{"first_name"=>"11111111111 在", "last_name"=>"1111111", "active"=>"1", "bio"=>"1111 磊"}, "commit"=>"Update User", "id"=>"1"} [1m[35mUser Load (0.0ms)[0m SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", "1"]] [1m[36m (15.6ms)[0m [1mbegin transaction[0m [1m[35m (93.8ms)[0m UPDATE "users" SET "first_name" = '11111111111 在', "bio" = '1111 磊', "updated_at" = '2012-08-14 07:12:32.296875' WHERE "users"."id" = 1 [1m[36m (109.4ms)[0m [1mcommit transaction[0m Redirected to http://localhost:3000/users/1 Completed 302 Found in 266ms (ActiveRecord: 218.8ms)

8 楼 已删除
需要 登录 后方可回复, 如果你还没有账号请 注册新账号