MySQL编码不一致导致乱码问题总结
来源:互联网 发布:健身教材 知乎 编辑:程序博客网 时间:2024/05/29 17:46
使用MySQL常常会出现乱码问题,一般情况下都是因为编码不一致造成,以下提供了MySQL数据编码相关的一些信息,希望会有所帮助。
一、MySQL的编码机制:
1、数据库级别的编码:数据库服务器上允许建立不同编码的数据库,在数据库建立时需要指定编码;
2、表级别的编码:同一个数据库中可以建立不同编码的表,在表建立时需要指定编码,默认为用户连接时的编码;
3、表字段级别的编码:同一个表中可以建立不同编码的字段,默认为表的编码,要对字段指定特殊的编码,必须在字段中明确指定编码格式;
4、建立数据库连接时的编码:用户可以在建立数据库连接时指定编码,默认为服务器的配置。
二、出现乱码的一般原因:
1、建立数据库连接时使用的编码不对:例如:数据库编码为UTF-8,连接数据时没有指定编码格式常常会造成乱码问题,正常的解决应该是在driverURL中指定编码 jdbc:mysql://localhost:3306/zhuojh?useUnicode=true&characterEncoding=UTF-8
2、表的编码和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-8
2、Spring、Struts和iBatis,采用MySQL数据库乱码问题解决:如果表和字段的编码一致都是UTF-8,在属性文件配置中指定下配置项,即可解决乱码问题 jdbc:mysql://localhost:3306/bcq?useUnicode\=true&characterEncoding\=UTF-8
3、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_tablename
- MySQL编码不一致导致乱码问题总结
- MySQL编码不一致导致乱码问题解决
- Tomcat 编码不一致导致乱码
- MySQL数据库编码不一致导致的中文乱码
- 源代码字符编码不一致导致显示乱码
- MYSql编码返回导致乱码
- MySQL connection.url的编码导致中文乱码问题
- 读写文件编码方式不一致导致文件乱码的解决方案
- mysql php 插入乱码 编码问题总结
- Java-MySQL中文乱码编码问题总结
- Java-MySQL中文乱码编码问题总结
- mysql新旧数据不一致导致的问题
- tomcat编码格式与jsp编码格式不一致,导致页面标题乱码
- mysql编码utf8乱码总结
- MySQL字符编码乱码问题
- Mysql乱码问题总结
- mysql 编码问题总结
- Mysql编码问题总结
- C++11新特性之列表初始化
- jjb command
- java中如何调用数据库的存储过程
- Qt设置窗体背景
- JAVA设计模式(一)-开篇
- MySQL编码不一致导致乱码问题总结
- Mac 装机必备app
- 分布式消息队列RocketMQ与Kafka架构上的巨大差异之1 -- 为什么RocketMQ要去除ZK依赖?
- Win10应用商店出现0x80072EE2错误的解决方法
- 二,redis数据类型-String
- Ubuntu 环境中多线程下载工具Axel的安装与使用
- 关于在node.js进入文件目录的问题
- 创建一个简单的web服务器(二):使用自定义的类加载器来替换URLClassLoader
- Android 清理应用缓存