Tam*_*Tam 7 ruby-on-rails ruby-1.9
我的Ruby 1.9和Rails 2.3.4出现以下错误.当用户提交非ASCII标准字符时会发生这种情况.
我阅读了很多在线资源,但似乎没有一个解决方案有效.
我尝试过使用(作为一些资源建议)
string.force_encoding('utf-8')
Run Code Online (Sandbox Code Playgroud)
但它没有帮助.
任何想法如何解决这个问题?有没有办法在保存到数据库之前消除这些字符?或者,有没有办法让它们显示?
Jho*_*ung 11
对于ruby 1.9和Rails 3.0.x,请使用mysql2适配器.
在你的gemfile中:
gem 'mysql2', '~> 0.2.7'
Run Code Online (Sandbox Code Playgroud)
并将您的database.yml更新为:
adapter: mysql2
Run Code Online (Sandbox Code Playgroud)
http://www.rorra.com.ar/2010/07/30/rails-3-mysql-and-utf-8/
我对 Ruby(或 Rails)了解不多,但我想问题是由于缺乏对字符编码的控制而引起的。
首先,您应该决定在数据库中存储哪种编码。然后,您需要确保在存储到数据库之前将所有文本转换为该编码。为此,您首先需要知道它是以哪种编码开始的。
一个经常被重复的建议是,在您控制所有输入后,尽快将所有输入从它使用的任何编码解码为 unicode(如果您的语言支持它)。然后您就知道您在程序中处理的所有文本都是 unicode。另一方面,将文本编码为您想要的任何输出编码,作为输出之前的最后一步。
关键是始终知道代码中任何给定位置的文本使用哪种编码。
| 归档时间: |
|
| 查看次数: |
14086 次 |
| 最近记录: |