character_set_results
character_set_server

Java琐事

-I am not alone
posts - 54, comments - 30, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
    使用java编码,jsp页面显示,mysql数据库管理数据,真正的开发过程中还可能用到其他框架,或者插件,这么多不同的东西混合在一起,总会有可能产生编码不同的问题,中文的显示很容易就变成了乱码。所以这里我要说下对编码一致性的设置。
    前台使用jsp,插件有fckeditor,后台数据库使用mysql,可视化工具sqlyog。这里用utf-8编码。现在开始配置:
1. jsp:每个页面上声明好<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
2. IDE工具:在MyEclipse中配置默认的编码。可以在windows-preference中设置
3. mysql:这里是我想说的重点。mysql安装版一般都是utf-8,而好多免安装版的都是gbk,打开sqlyog后,单击左侧的root@localhost,再选中右侧下部的5 Info,就能看到 Show Variable[local] 的所有参数,这里看
character_set_client
gbk
character_set_connection utf8

character_set_database
utf8

character_set_filesystem
binary
utf8
utf8
character_set_system utf8
是不是已经都是utf8了,如果不是,打开mysql的安装目录,找到my.ini文件,修改相应部分的编码方式,比如我的就需要这样

[mysql]

default-character-set=utf8

再次使用sqlyog,就能看到相应的改变了。
但如果你没有安装可视化工具,也可以在命令行中使用show variables命令查看编码。
这样,基本上所有的地方都设置成了utf-8,其实这些地方都设置成gbk也是可以的,只要统一好就行。
然后,使用sqlyog的时候就不会看到数据库中都是乱码,或者页面上显示时乱码了。

除了中文编码存储不一致之外,还有另一种情况,就是urlencode的问题,比如在百度中输入中文关键词搜索,地址栏中最后会显示它的gbk式的编码,http://www.baidu.com/s?wd=%C4%E3%BA%C3 这其实是两个中文(你好)的gbk编码,而utf-8式的编码则是每个中文有三个类似%C4 的组合。

只有注册用户登录后才能发表评论。


网站导航: