首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不兼容的字符编码: Ruby 1.9中的ASCII-8位和UTF-8

问不兼容的字符编码: Ruby 1.9中的ASCII-8位和UTF-8
EN

Stack Overflow用户
提问于 2009-11-23 03:44:46
回答 2查看 14.3K关注 0票数 7

我的Ruby1.9& Rails 2.3.4出现以下错误。当用户提交非ASCII标准字符时,会发生这种情况。

我读了很多在线资源,但似乎没有一个有效的解决方案。

我尝试使用(正如一些参考资料所建议的)

代码语言:javascript
复制
string.force_encoding('utf-8') 

但这并不管用。

有什么办法解决这个问题吗?有没有办法在保存到数据库之前消除这些字符?或者,有没有办法让他们表现出来?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-23 04:02:53

我对Ruby (或Rails)了解不多,但我想这个问题是由于缺乏对字符编码的控制造成的。

首先,您应该决定将哪种编码存储在数据库中。然后,您需要确保在将所有文本存储到数据库之前将所有文本转换为该编码。为了做到这一点,您首先需要知道从哪种编码开始。

一个经常重复的建议是,在您控制unicode之后,尽快将所有输入解码为unicode(如果您的语言支持unicode)。然后您就知道您在程序中处理的所有文本都是unicode。在另一端,将文本编码为您想要的任何输出-编码是输出文本之前的最后一步。

关键是要始终知道在代码中的任何给定位置使用了哪种编码。

票数 1
EN

Stack Overflow用户

发布于 2011-06-02 12:15:28

对于Ruby1.9和Rails 3.0.x,使用mysql2适配器。

在您的gemfile中:

代码语言:javascript
复制
gem 'mysql2', '~> 0.2.7'

并将您的database.yml更新为:

代码语言:javascript
复制
adapter: mysql2

http://www.rorra.com.ar/2010/07/30/rails-3-mysql-and-utf-8/

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1779740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档