Welcome 微信登录

首页 / 数据库 / MySQL / MySQL编码不一致导致乱码问题解决

使用MySQL常常会出现乱码问题,一般情况下都是因为编码不一致造成,以下提供了MySQL数据编码相关的一些信息,希望会有所帮助。一、MySQL的编码机制: 1、数据库级别的编码:数据库服务器上允许建立不同编码的数据库,在数据库建立时需要指定编码; 2、表级别的编码:同一个数据库中可以建立不同编码的表,在表建立时需要指定编码,默认为用户连接时的编码;3、表字段级别的编码:同一个表中可以建立不同编码的字段,默认为表的编码,要对字段指定特殊的编码,必须在字段中明确指定编码格式; 4、建立数据库连接时的编码:用户可以在建立数据库连接时指定编码,默认为服务器的配置。二、出现乱码的一般原因: 1、建立数据库连接时使用的编码不对:例如:数据库编码为UTF-8,连接数据时没有指定编码格式常常会造成乱码问题,正常的解决应该是在driverURL中指定编码 jdbc:mysql://localhost:3306/zhuojh?useUnicode=true&characterEncoding=UTF-82、表的编码和driverURL中指定编码不一致造成的乱码问题例如:表的编码是latin1,driverURL中指定编码却是UTF-8,在保存时就会提示保存了错误的数据,解决方式就是使用相同的编码3、表的编码和表中字段编码不一致造成的乱码问题例如:表的编码是UTF-8,表中的字段却是latin,这种情况编码问题处理起来比较复杂,建议统一编码格式,有兴趣者可以深入研究三、案例 1、Spring、Hibernate、Struts和Proxool,采用MySQL数据库乱码问题解决:如果表和字段的编码一致都是UTF-8,在Proxool配置中指定下配置项,即可解决乱码问题 jdbc:mysql://localhost:3306/zhuojh?useUnicode=true&characterEncoding=UTF-82、Spring、Struts和iBatis,采用MySQL数据库乱码问题解决:如果表和字段的编码一致都是UTF-8,在属性文件配置中指定下配置项,即可解决乱码问题 jdbc:mysql://localhost:3306/bcq?useUnicode=true&characterEncoding=UTF-83、Linux下使用MySQL自带的备份工具转换不同编码格式的表数据如果源表的编码格式为latin1,目标表的编码格式为UTF-8,在Linux环境下可以使用以下命令进行转换 mysqldump -C -h ${source_host} -u${source_username} -p${source_password} --default-character-set=latin1 source_database source_tablename|sed -e "s/latin1/utf8/"|mysql -u${local_username} -p${local_password} local_tablenameJava中如何对Oracle的Long型数据操作如何为Linux服务器更改MySQL目录相关资讯      MySQL教程 
  • 30分钟带你快速入门MySQL教程  (02月03日)
  • MySQL教程:关于I/O内存方面的一些  (01月24日)
  • CentOS上开启MySQL远程访问权限  (01/29/2013 10:58:40)
  • MySQL教程:关于checkpoint机制  (01月24日)
  • MySQL::Sandbox  (04/14/2013 08:03:38)
  • 生产环境MySQL 5.5.x单机多实例配  (11/02/2012 21:02:36)
本文评论 查看全部评论 (1)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款