实在不好意思在开这样的帖子,关于这个问题的帖子也不少了,不过找了一堆还是没有解决。
这个问题一般的解决方法:
[quote]
1.在radrails中,请在project的property对话框中,左边选中info节点,右边设置编码方式为UTF-8
2.修改MySQL的配置文件C:\Program Files\MySQL\MySQL Server 5.0\my.ini,改其中的两处default-character-set=utf8,改完后重启MySQL(windows服务)。这一步也可采 用instance wizard来做。
3.运行你的建库脚本,建库脚本中无须涉及到任何编码问题。
4. 修改ApplicationController 如下:
ruby 代码
- class ApplicationController < ActionController::Base
- before_filter :configure_charsets
-
- def configure_charsets
- @response.headers["Content-Type"] = "text/html; charset=utf-8"
- suppress(ActiveRecord::StatementInvalid) do
- ActiveRecord::Base.connection.execute 'SET NAMES utf8'
- end
- end
- end
5.请在rhtml中,或者适当的layout中,加上:
至此,无论是在Mysql中,前台页面中,还是在IDE中,都能正常使用中文
6.关于ruby本身的中文字串处理问题,例如size,substring等,请查看此文
http://www.blogjava.net/cap/archive/2006/12/14/87830.html
[/quote]
这在railscn.com上已经结帖了,别处也是乎大同小异。
但:
一、页面中文问题是乎不用这麻烦:
只要将rails所有的文件用utf-8格式保存(其它的都可不要),就可是很好的支持中文显示。
在rails 1.1.6和1.2.2下都测试正常(windows和linux都测试过)
二、mysql中文问题却比较麻烦:
1.rails所有的文件用utf-8格式保存,将mysql的编码为utf-8,页面可以正常读、写、显示,可mysql所是一堆乱码。
2.然后layout中,加上: ,没有解决问题
3.接着,修改ApplicationController 如下:
ruby 代码
- class ApplicationController < ActionController::Base
- before_filter :configure_charsets
-
- def configure_charsets
- @response.headers["Content-Type"] = "text/html; charset=utf-8"
- end
- end
没有解决问题
4.继承修改ApplicationController
ruby 代码
- class ApplicationController < ActionController::Base
- before_filter :configure_charsets
-
- def configure_charsets
- @response.headers["Content-Type"] = "text/html; charset=utf-8"
- suppress(ActiveRecord::StatementInvalid) do
- ActiveRecord::Base.connection.execute 'SET NAMES utf8'
- end
- end
- end
于是得到如下错误:
ActiveRecord::StatementInvalid in CompanyuserController#create
Mysql::Error: #HY000Incorrect string value: '\xE5\x9C\xA8' for column 'name' at row 1: INSERT INTO company_users (`name`, `companyId`, `username`, `tel`, `note`, `address`) VALUES('在', 245, '', '', '', '')
RAILS_ROOT: ./script/../config/..
suppress方法我并不熟悉,大概是使执行数据库操作时使用utf-8编码。
5.又看到一种方法:在database.yml文件中加上 encoding: utf8。
于是,去掉2、3、4运行,依然得到4的错误。加上2、3、4(一步一步加)错误依旧。
这个问题,我怀疑Http请求将utf8编码转换在gb2312,由是就将mysql改为utf8结果,存入数据库的数据仍然出现。
看到
bd7lx的博客上有一篇文章《
gettext 汉化的*正规*正轨*而且还是简单的方法 》是乎是解决之道,但没有试用。还是想明白在无插件下怎么解决mysql中文问题以及原理。
分享到:
- 2007-03-29 11:41
- 浏览 6662
- 评论(8)
- 论坛回复 / 浏览 (8 / 11184)
- 查看更多
相关推荐
标题中的“Rails的中文乱码问题”涉及到的是在使用Ruby on Rails框架开发Web应用时,遇到的中文字符编码不正确的问题。Rails是一个基于Ruby语言的开源Web开发框架,它遵循MVC(Model-View-Controller)架构模式。在...
由于在Windows上直接安装可能会遇到问题,可以尝试使用预编译的二进制版本,或者在命令行中运行`gem install mysql2 --platform=ruby -- --with-mysql-dir="C:\path\to\mysql\installation"`,其中"C:\path\to\mysql...
然而,有时在尝试连接Rails应用到MySQL数据库时,可能会遇到一些问题。本篇文章将深入探讨这些常见问题及其解决方案。 首先,Rails与MySQL的连接问题可能源于配置不正确。在`config/database.yml`文件中,你需要...
在Rails框架中处理文件上传时,经常会遇到一个问题,那就是当用户尝试上传包含中文名称...通过这些方法,可以有效地解决Rails应用在处理中文文件名时可能出现的乱码问题,从而提高用户体验并保证数据的完整性和一致性。
在安装和配置 Ruby on Rails 和 MySQL 数据库的过程中,可能会遇到一些问题。例如,在创建 POSTS 应用时可能会遇到问题,创建数据后数据库中有数据,但是到 Listing posts 界面无法查看,总是报错。解决方法是下载 ...
《Ruby on Rails与MySQL环境配置详解》 在开发基于Web的应用程序时,Ruby on Rails(简称Rails)框架和MySQL数据库的结合是常见的选择。本文将详细介绍如何在Windows环境下配置Ruby on Rails以支持Rails 2.3.5及...
docker-rails6-mysql8 启动Rails设置 跑新轨道 $ docker-compose run web rails new . --force --no-deps --database=mysql --skip-test --webpacker docker镜像构建 $ docker-compose build 编辑database.yml ...
这一步是关键,它指定了MySQL的默认字符集为UTF-8,从而避免了中文乱码的问题。 #### 二、安装与配置Ruby on Rails Ubuntu 11.04默认包含Ruby 1.8.7和Rails 2.3.5,但为了更好的兼容性和性能,建议手动更新或安装...
在Rails中集成MySQL,你需要安装特定的数据库适配器,即`mysql2` gem。这个gem允许Rails与MySQL数据库进行通信,处理SQL查询并管理数据库连接。在`Gemfile`中添加以下行来安装`mysql2` gem: ```ruby gem 'mysql2' ...
1.安装gem,进入gem文件夹,里面有个setup文件,直接双击就行了。 2.进入rails目录使用gem命令安装(这一步必须要上...3.复制libmySQL.dll到ruby的安装目录的bin文件夹下,然后使用gem安装mysql-2.7.3-x86-mswin32.gem.
Rails指南中文版是针对Ruby on Rails框架的一份详尽教程,旨在帮助开发者深入理解并熟练掌握这个强大的Web应用开发工具。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-...
– c:/ruby/lib/ruby/gems/1.8/gems/mysql-2.7.3-x86-mswin32/ext/mysql.so 实际上是找不到连接所需的dll文件:libmySQL.dll 在mysql安装目录下的bin目录下将此文件复制到ruby的bin目录下即可解决此问题. ...
在Ruby on Rails中文指南中,你将全面学习到如何利用这个强大的框架来构建动态的、数据驱动的Web应用程序。 首先,让我们深入理解Rails的核心概念: 1. **路由(Routes)**:Rails的路由系统是应用程序的导航蓝图...
Ruby 的现代、简单且非常快速的 Mysql 库 - 绑定到 libmysql Mysql2 gem 旨在服务于连接、查询和迭代结果的极其常见的用例。那里的一些数据库库作为已经很复杂的可用 C API 的直接 1:1 映射。这个不是。
"敏捷Rails中文教程.pdf"这个文件名暗示着教程可能涵盖Rails的敏捷开发实践。学习Rails的过程中,除了阅读文档,还可以参考在线教程、视频课程、社区论坛和开源项目,以加深理解和实践。Rails社区活跃,有许多优秀的...
在Rails应用中,当面临大数据表的处理时,MySQL的分区表是一个实用的优化策略,可以显著提升查询性能。MySQL的分区表特性允许我们将一张大表分割成多个小表,以便于管理和加速查询。在本例中,针对一个名为diet_...
《Agile Web Development with Rails》是一本经典的Rails开发指南,中文版的出版使得更多的中国开发者能够深入理解并应用敏捷开发方法与Ruby on Rails框架。这本书是Rails开发者的必备参考资料,它详细介绍了如何...
### RAILS2.1的中文版资料:新特性与改进详解 #### 概述 《RAILS2.1的中文版资料》是一份针对Ruby on Rails 2.1版本的详细介绍文档,由Carlos Brando和Marcos Tapajós共同编写,并由中国Rails社区成员翻译成中文...