精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-13
安装 MySq时选择字符集为UTF-8 修改MySql安装目录下的my.ini中配置的默认编码: 该文件中有两处这样的配置:default-character-set=latin1 将这两处改成:default-character-set=utf8 新建数据库需指定字符集: UTF8: CREATE DATABASE mmtye DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 在命令行查看字符集编码:show variables like '%char%'; 会看到如下信息: 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 | D:\MySQL\share\charsets\ 以上内容在重启MySql后也一直有效,无需每次启动数据库都要指定。 A、为了在命令行下能正确查看中文,命令行下执行: set character_set_results=gbk; B、若需要在windows命令行执行insert、update,则执行: set character_set_client=gbk; A、B 两个命令重启数据库前有效,重启后就失效了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-11-15
windows7下这个做法是正常的,xp下没有进行测试。
|
|
返回顶楼 | |
发表时间:2010-11-15
补充一下,新建表的时候要加上字符集,例如:
create table dloginmsg( ...... ..... )ENGINE=MyISAM DEFAULT CHARSET=utf8; |
|
返回顶楼 | |
发表时间:2010-11-19
这个只是解决了mysql的编码,但是没有解决j2ee的编码问题。
解决j2ee编码问题步骤: 1.设置mysql的字符编码为utf-8,可以在安装的时候设置,也可以用楼主的方法设置 2.设置容器的编码:比如tomcat,打开server.xml,找到8080 加速URIEncoding="utf-8" 3.设置url的字符编码。应为url传递参数默认都是iso8859-1,所以需要将头信息改成utf-8,可以自己写个过滤器修改头信息,也可以用spring现有的过滤器。 以上3点完成,这才叫彻底解决编码问题了 |
|
返回顶楼 | |
发表时间:2010-11-19
最后修改:2010-11-19
如果SSH2框架的话,还需要在Action中加上序列化serialVersionUID,在数据库连接的地方我常常也会加一个characterEncoding=utf-8
|
|
返回顶楼 | |
发表时间:2010-11-19
白糖_ 写道 如果SSH2框架的话,还需要在Action中加上序列化serialVersionUID,在数据库连接的地方我常常也会加一个characterEncoding=utf-8
请教:在action中加入serialVersionUID跟编码有关系吗?谢谢 |
|
返回顶楼 | |
发表时间:2010-11-19
设置成UTF-8是好,可是,对某个字段按照中文来排序,你就没办法了……
|
|
返回顶楼 | |
发表时间:2010-11-21
xiaoxin5230 写道 这个只是解决了mysql的编码,但是没有解决j2ee的编码问题。
解决j2ee编码问题步骤: 1.设置mysql的字符编码为utf-8,可以在安装的时候设置,也可以用楼主的方法设置 2.设置容器的编码:比如tomcat,打开server.xml,找到8080 加速URIEncoding="utf-8" 3.设置url的字符编码。应为url传递参数默认都是iso8859-1,所以需要将头信息改成utf-8,可以自己写个过滤器修改头信息,也可以用spring现有的过滤器。 以上3点完成,这才叫彻底解决编码问题了 jsp页面的头要不要设置呢? 数据库的驱动呢? |
|
返回顶楼 | |
发表时间:2010-11-21
最后修改:2010-11-21
所谓的彻底解决难道一竿子全部设置成UTF8啊。 看来charset要彻底的理解还是困难。
如果彻底的理解字符集合, 完全可以做到 数据库/JSP/HTML/driver全部都是不一致的编码。 能做到这些完全是因为JAVA内部的处理是UNICODE。 也就是每个经过JAVA处理的东西, 只要告诉JAVA处理目标的编码即可。 另外, 也就是, 要在客户端能正确看到, 也要告诉JAVA输出的目标的编码是什么。 我举个例子 1. 读取GBK的数据库的数据 2. 读取gb2312的文件 3. 读取UTF8编码的模板文件 在经过JAVA处理后, 我们可以统一输出到一个gb1830的HTML文档里去。 当然, 这样的处理99%的字符肯定是对的。 我也遇到个别字符的特殊情况。 主要是UTF8/GBK之间存在一些字符映射不存在。 |
|
返回顶楼 | |
发表时间:2010-11-24
不错。我正发愁命令行行的乱码问题!希望成功!
|
|
返回顶楼 | |