utf编码问题

yingtju 2005-09-05 10:37:38
以前用gbk,虽遇到过编码问题,但在网上查了些资料都解决了,窃以为不会在受编码问题困扰了
现在用了utf,gbk那一套好像都不好使了
我装的mysql4.1.13a, 默认字符集utf8,客户端登陆也用utf8
但现在在命令行廉基本的插入操作都不行,英文字符正常,插入中文就是空

用公司的服务器(也是utf8),在页面显示是乱码(连接的url加了useUnicode.. ,页面contentType也设为utf8了)

我用gbk一切都没问题啊,谁知道怎么回事阿
...全文
79 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjhlzl 2005-09-07
  • 打赏
  • 举报
回复
使用过滤器了没有?
看看是不是因为过滤器的原因!
yingtju 2005-09-05
  • 打赏
  • 举报
回复
这个我也看过,不好使阿
xjhlzl 2005-09-05
  • 打赏
  • 举报
回复
关注 引
----------------
MySQL数据库的4.1是一个分水岭,4.1直接支持Unicode,以下版本支持的不好;

MySQL JDBC Driver的3.0.16也是一个分水岭,3.0.16版本会取数据库本身的编码,然后按照该编码转换,这种方式和Oracle的JDBC Driver是一样的。例如你的数据库是GBK编码的话,JDBC Driver就会把数据库里面的取出来的字符串按照GBK往unicode转换,送给JVM。因此正确的设置数据库本身的编码就尤为重要。

MySQL JDBC Driver3.0.16以下的版本则不然,它不会那么智能的根据数据库编码来确定如何转换,它总是默认使用ISO8859-1,因此你必须使用 characterEncoding=GBK来强制他把数据库中取出来的字符串按照GBK来往unicode转换。

因此,使用什么数据库版本,不管是3.x,还是4.0.x还是4.1.x,其实对我们来说不重要,重要的有二:

1) 正确的设定数据库编码,MySQL4.0以下版本的字符集总是默认ISO8859-1,MySQL4.1在安装的时候会让你选择。如果你准备使用UTF- 8,那么在创建数据库的时候就要指定好UTF-8(创建好以后也可以改,4.1以上版本还可以单独指定表的字符集)

2) 使用3.0.16以上版本的JDBC Driver,那么你就不需要再写什么characterEncoding=UTF-8

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧