乱码问题可能出现的三个地方

1.程序连接的编码要设置

  jdbc:mysql://192.168.1.1:8066/TESTDB?useUnicode=true&characterEncoding=utf8

2. mysql数据库的编码要设置

1)        查看mysql server级别的编码集

首先进入mysql使用命令:

     mysql -uroot –p

然后 执行命令查看:

 show variables like 'character%'
+--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | NULL | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+

编辑/etc/mysql/my.cf文件

在[client]下添加

default-character-set=utf8   

在[mysqld]  下添加

character_set_server=utf8  (如果重启mysql出错调整位置,在[mysqld] 最下面)
我机器上是这样配置的:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
character-set-server=utf8
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

注:[mysqld]处也可使用default-character-set=utf8,如果启动mysql服务出错的话,就使用character_set_server=utf8。

2) 查看数据库级别的编码是不是一致的,使用mysql客户端可以看到

mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+


3. mycat的编码

默认的是utf8格式的,明确指定在server.xml下的system标签下添加格式如下:

<property name="charset">utf8</property>

4. 如果业务需要utf8mb4 等复杂字符集配置对应修改:

默认的是utf8格式的,明确指定在server.xml下的system标签下添加格式如下:

<property name="charset">utf8mb4</property>

然后根据数据库端的字符集ID配置mycat的字符集序列:

配置conf/index_to_charset.properties

对应为字符集ID=字符集

比如45=utf8mb4

上述四点配置的编码一致的话乱码就不会出现了。

最新文章

  1. 【Win10 应用开发】实现数据的增量加载
  2. mysql常见错误及解决方案
  3. iOS之单例
  4. https://my.oschina.net/huangyong/blog/161419
  5. C数组的相关知识
  6. Java基础 -- 冒泡排序算法(带详细注释)
  7. 瑞丽的SQL-SQL Server的表旋转(行列转换)
  8. Apache HTTP Server 与 Tomcat 的三种连接方式介绍(转)
  9. 持久化redis
  10. Linux内存管理 (15)页面迁移
  11. 唯一约束(UNIQUE_KEY)
  12. 有关于tomcat启动时,利用listener来执行某个方法
  13. 一个从MongoDB中导出给定日期范围内数据的shell脚本
  14. ABOUT ME/OI回忆录
  15. 项目打成jar包
  16. [转]Newtonsoft.Json 序列化和反序列化 时间格式
  17. 在Qt示例项目的C ++ / QML源中的//! [0]的含义是什么?
  18. windows的cmd命令切换磁盘路径
  19. JS与JAVA数据类型的区别
  20. caffe训练自己的数据集

热门文章

  1. android 连接蓝牙打印机 BluetoothAdapter
  2. 实现RTSP摄像机硬盘录像机NVR网站网页微信H5直播方案EasyNVR部署问题之:ERR_CONTENT_LENGTH_MISMATCH
  3. knuth洗牌算法
  4. sonar:默认的扫描规则
  5. 【Python学习之六】文件操作
  6. 【Python学习之三】流程控制语句
  7. 史上最详细bitbucket入门手册,手把手操作指南
  8. js 获取服务端时间,并实现时钟
  9. 链表习题(2)-一个集合用带头结点的单链表L表示,编写算法删除其值最大的结点。
  10. pycharm爬取网页数据