- 浏览: 65238 次
- 性别:
- 来自: 长沙
最近访客 更多访客>>
最新评论
-
qichunren:
vickyxr 写道咦,教程里不是说如果有中文的话用setDa ...
lighttpd下rails FusionCharts图表 -
qichunren:
vickyxr 写道非常非常汗!原来我忘加了“;”了,不提示了 ...
lighttpd下rails FusionCharts图表 -
vickyxr:
大侠们,为啥这个图是横着的呀?
lighttpd下rails FusionCharts图表 -
vickyxr:
咦,教程里不是说如果有中文的话用setDataXML不行吗,要 ...
lighttpd下rails FusionCharts图表 -
vickyxr:
非常非常汗!原来我忘加了“;”了,不提示了,但是还是不能显示, ...
lighttpd下rails FusionCharts图表
根据探索和总结,发现在字符集的问题上,最终明智的做法是使操作系统、数据库、程序编码都采用utf8格式。而不要试图使其中的某一个改用GBK,否则会出现难于搭配配置的问题,后悔莫及。如果有的人愿意用gb2312的话,呵呵,真实应用起来就知道,我们中文文化博大精深,很多大字符集的字其实是我们需要用到的。
起初也是碰到问题,找了若干答案,最终解决办法如下:
1、确定mysql数据库编码是utf8
2、database.yml里面增加encoding: utf8
3、确定编辑器的保存文件格式为:UTF-8,保证rhtml文件编码是UTF-8,如果是radrails,点击项目,右键选择属性来设置。
其中,第1条的设置步骤:
1.1 如果是windows版本的mysql,那么在安装的时候,系统就会提示用哪种编码,设置好了,一劳永逸。
如果安装的时候设置错误了,修改mysql安装目录下的my.ini文件:
[mysql]
default-character-set=utf8
...
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8
配置好后,重启mysql。
1.2 如果是linux版本的mysql(我用centos5)
1.2.1首先要确保centos5以中文方式安装,我测试过先按英文方式安装,可后来怎么也配不上中文字符集。重新用中文方式安装,字符集都会自动加载了,免去很多烦恼。
如果不放心,确认一下:
vi /etc/sysconfig/i18n (确保其内容是这样的.)
LANG="zh_CN.UTF-8"
查看变量:env
export LANG=zh_CN.UTF-8
如果都是这样,就正确了!
1.2.2修改mysql的配置文件,使数据库与服务器操作系统的字符集设置一致。
vi /etc/my.cnf 设置(如果没有发现这个文件,就新建1个)
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8 (增加的关键一句,使得数据库缺省以utf8存储)
当然,修改后,要重启数据库。
再次用mysql -u root -p命令进入数据库系统,用SHOW VARIABLES LIKE 'character_set_%';命令查看到如下内容:
+--------------------------+-----------------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-5.1.20-beta-linux-i686-glibc23/share/mysql/charsets/ |
+--------------------------+-----------------------------------------------------------------------+
发现关键项目已经用了utf8,但这样还不够,还要保证客户端也是用utf8的字符集来操作的。
登录的时候,要用以下命令:mysql --default-character-set=utf8 -u root -p
再次用SHOW VARIABLES LIKE 'character_set_%';命令查看,结果变成了:
+--------------------------+-----------------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-5.1.20-beta-linux-i686-glibc23/share/mysql/charsets/ |
+--------------------------+-----------------------------------------------------------------------+
这样才能保证客户端所发命令都是基于utf8格式的,比如说建立数据库和表,默认就会以utf8编码,而无须再次指定。
另外提一句,如果是jsp,页面定义成:<!---->就可以与数据库的utf8搭配了。而实验发现,如果改成:charset=utf8是有问题的。
评论
总结归纳,我转载了:
装confluence,使用mysql乱码,查出是mysql编码设置问题:
最终解决方案:
mysql UTF8设置:
vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8 (数据库缺省以utf8存储)
init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
[client]
default-character-set=utf8 (客户端缺省以utf8存储)
重启mysql
登陆mysql,查看:
show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
找到客户端配置[client] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
今天总算看到了。以前我用mysql命令行,都是用一次在命令行里设置一次,汗!
谢谢
找到客户端配置[client] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
修改好后,重新启动mysql 即可,查询一下show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
这样就不用每次连接 都使用 --default-character-set=utf8 了
发表评论
-
lighttpd下rails FusionCharts图表
2008-08-08 15:26 4260尝试使用open_flash_chart和FusionChar ... -
xp上rails1.2.6的stand-alone安装
2008-07-09 12:13 903 & ... -
利用数组和ajax实现单条翻动标题新闻
2008-01-24 15:50 1135ruby 1.8.6 rails 1.2.6 在视图文件/ ... -
《Programming Ruby》第二版应该阅读章节
2007-12-18 12:13 1121之前阅读过了《Web开发敏捷之道》第二版,再读这个《Progr ... -
关于进行程序测试安排的一点想法
2007-12-07 16:14 1129人们往往乐于发现别人编程的错误而害怕揭露自己所写的代码的问题。 ... -
《Web开发敏捷之道》2版 P547页上方问题
2007-12-06 16:51 952P546说在P547最上用的正则表达式,是为了只要用户的输入内 ... -
mysql5.1.21执行migrate处理中文有问题
2007-09-14 10:16 1282安装了mysql5.1.21,执行: db:migrate,其 ... -
P165 若没有一个用户时弹出注册框
2007-09-13 21:13 1175目标是当用户输入:http://localhost:3000/ ... -
P165 调整付账代码为一个action
2007-09-13 21:12 1111控制器store_controller.rb中,删除原save ... -
P145 将支付类型保存到数据库
2007-09-13 21:10 1200将007_create_pay_types.rb改造成: cl ... -
《Web开发敏捷之道》2版 P130 使购物车采购数量减1(Ajax实现)
2007-09-05 12:10 1216局部模板_cart_item.rhtml &l ... -
《Web开发敏捷之道》2版 P130使购物车采购数量减1(非Ajax方法实现)
2007-09-05 12:10 1639局部模板_cart_item.rhtml <% if c ... -
《Web开发敏捷之道》2版 P129 将清空购物车改为Ajax实现
2007-09-04 21:29 19131.将_cart.rhtml中"清空购物车" ... -
《Web开发敏捷之道》2版 P93 点击图片调用action的方法
2007-09-04 21:13 1436如果没有用Ajax方法,写法如下: <%=link_to ... -
《Web开发敏捷之道》2版 P112 计数器答案
2007-09-04 13:20 13281.定义一个模型:counter.rb class Coun ... -
Ruby中Tk的安装(for win)
2007-09-04 11:24 2892Ruby需要用Tk来创建GUI,tk的下载及安装步骤如下: 网 ... -
《Web开发敏捷之道》2版 9.4勘误(取消)
2007-09-02 18:58 2163本以为P124,9.4下的代码中,有两个地方要加@符号。 发 ...
相关推荐
mysqlDriver4ror.rarmysqlDriver4ror.rarmysqlDriver4ror.rarmysqlDriver4ror.rar
插件,可以不用到那个网站上去下了,还有mysql-front备份文件,大家可以直接导入。 博文链接:https://msdn.iteye.com/blog/44807
ror实例ror实例ror实例
RoR性能优化经验谈,牛人对ror的优化,值得大家阅读
NULL 博文链接:https://xuxiangpan888.iteye.com/blog/266696
ror中文资料ror中文资料
ROR 架构介绍及了解
带有Google Vision集成的示例应用程序 Simple Images Vision应用查看器。 安装 请按照以下简单步骤安装和启动应用程序: 设置Rails应用 首先,安装应用程序所需的gems: bundle 接下来,安装前端依赖项: ...
基于RoR的博客系统,代码风格简单清晰,前后太完善,适合初学者。
神经网络ror resenet模型 cifar10准确率89% cifar100准确率72%
NULL 博文链接:https://wuhuizhong.iteye.com/blog/870331
ROR环境 Ruby version 1.9.3 (java) RubyGems version 1.8.24 Rack version 1.4 Rails version 3.2.12 JavaScript Runtime therubyrhino (Rhino) Active Record version 3.2.12 Action Pack version 3.2.12 ...
之前本人在windows 上搭建ROR环境,屡屡受挫,上网查资料、加入ruby on rails的qq群,关注ruby社区等,没有得到一套完整的正确的方法,很多朋友说不要在windows 弄ROR,很费力。的确很费力,后来在朋友的帮助下,...
RoR选题方向—源代码
家蚕Ror2基因的克隆与表达分析,刘伟,陈菲,Ror家族属于受体酪氨酸激酶中的孤儿受体,在进化上非常保守。本研究克隆了家蚕Ror2基因BmRor2的ORF序列,BmRor2基因的ORF为1924 bp,编码638
破解版本的JAR包,放到本地磁盘,ECLIPUS直接用,到JVM设置直接加 -noverify -javaagent:D:\javarebel.jar
为ror3提供的mysql开发工具,直接下载该dll,放到ruby安装目录bin下即可