首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>mysql>正文

Linux平台中MySQL的JDBC中文问题解决

http://www.oklinux.cn  2008-04-22  来源: linuxidc   会员收藏  游客收藏  【 】 

除了众所周知的中文问题之外,Linux平台中的mysql实例可能遇到这样的问题:

你使用mysql5x版本并且配置数据库使用UTF-8字符集,你使用linux标准的jdk环境,你使用一个足够高的mysql jdbc driver,你使用UTF-8字符集做为J2EE的基本字符集。你使用了很标准的CharacterEncodingFilter完成透明的字符集转换。

这样,你在大多数情况下已经没有感受到中文问题对Java应用的干扰了,但偏偏在保存一个表单的时候发现中文被保存成了乱码或者问号。

究其原因,这是mysql驱动的一个已知的BUG,我没能找到(没去找)原始的BUG报告,但其大意为,jdbc driver可能没有能够正确识别jdbc url中的dash字符。

如果你为test数据库指定了默认的整理类型到“UTF-8”的话(例如 alter database test character set utf8;),往往从数据库中读取数据是能够自动采用正确的解码序列的,所以你的Java应用在“只读状态”下一切都显得那么的正常,直到你在尝试提交表单的时候,该问题才暴露出来。

解决的办法是用“UTF8”替代URL中的“UTF-8”,避开上述的陷阱。

另外一个附加的问题,JDBC URL对参数的分隔是使用“&”字符而不是“&”字符,若是你在URL中写了“&”的话,同样会使得后面的参数不能正确应用到driver layer上。这个问题比较复杂,原因是你在不同位置书写URL的时候可能需要进行转义的:

1. 在xml文件中写URL的时候,应该加上&,原因是xml认为&是转义符的引导字符,因此你写user=root&password=xxx到xml中时,等价于在java源代码中写user=root&password=xxx。

2. 在properties文件中写URL的时候,&没有转义含义,因此这时候的URL和Java源代码中的URL格式基本一致。所谓的基本一致,涉及到另外一个特殊字符“:”,在properties中,用“\:”转义序列表示一个“:”是可选的,也就是说很多时候,你可以混用这两个格式。


上一篇:微软、Novell加强中国市场开源合作力度   下一篇:Linux环境下识别编码新命令(enca)很好很强大

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Ubuntu下安装MySQL后MySQL SERVER不能启动的解决
·巧用MySQL InnoDB引擎锁机制解决死锁问题
·MySQL数据库中对前端和后台进行系统优化
·五种MySQL数据库可靠性方案的分析和比较
·轻松掌握MySQL数据库锁机制的相关原理
·一种特别简单的MySQL数据库安装方法
·实例讲解如何配置MySQL数据库主从复制
·MySQL存储过程SAVEPOINT ROLLBACK to
·创建Bitmap_Join_Indexes中的约束与索引
·Ubuntu7.10中MySQL默认只能本机访问的解决
·远程访问Ubuntu下的MySQL数据库
·Ubuntu上的MySQL字符集设置技巧
·在MySQL数据库中应当如何关闭错误提示音
·某些更改的非事务性表不能被回滚的现象
·放弃连接消息出现在错误日志中的主要原因
·怎样才能解决MySQL 5.0.16的乱码问题
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Ubuntu下安装MySQL后MySQL SERVER不能
·巧用MySQL InnoDB引擎锁机制解决死锁问
·MySQL数据库中对前端和后台进行系统优
·五种MySQL数据库可靠性方案的分析和比
·轻松掌握MySQL数据库锁机制的相关原理
·一种特别简单的MySQL数据库安装方法
·实例讲解如何配置MySQL数据库主从复制
·MySQL存储过程SAVEPOINT ROLLBACK to
·创建Bitmap_Join_Indexes中的约束与索
·Ubuntu7.10中MySQL默认只能本机访问的
·远程访问Ubuntu下的MySQL数据库
·Ubuntu上的MySQL字符集设置技巧
  阅读排行
·Linux 安装 Mysql
·如何在Linux系统中安装MySQL
·在Linux 环境下安装 Mysql
·在Linux上安装MySQL Server 5.0
·图形化管理MySQL更轻松
·[Mysql]IIS+mysql+php相关知识介绍
·你应该知道的10个MySQL客户启动选项
·MySQL创始人David Axmark 访谈实录
·[MySQL]入门学习从安装入门到学习操作
·Linux系统上安装MYSQL数据库的方法
·Heartbeat_2.0.3配置MySQL5.0.8集群
·MySQL中文参考手册-创造并使用数据库
·如何启动与停止MySQL的服务器
·MySQL5.0新特性教程 存储过程:第三讲
·MySQL 5.0新特性教程 存储过程:第一讲
网摘收藏: