zoukankan      html  css  js  c++  java
  • mysql 乱码问题

    问题描述:使用sqlyog工具查询表中数据,中文则显示为乱码。

    首先确认在ecplise项目与mysql数据库都是UTF-8字符集。

    解决过程:

    在my.ini文件中新增default-character-set=UTF8,重启mysql服务器启动失败。查原因,说是这个参数是5.1之前版本会取这个参数。5.5版本后,参数名称变化了。

    当前mysql版本为5.6。再次修改为character-set-server=utf8,重新启动服务。服务启动成功。

    再次查看,中文仍显示为乱码。

    后在ecplise项目中,重新向表中生成数据。新生成的数据,在sqlyog中查询中文显示正常,而原来乱码的数据仍显示乱码。

    看到网上有说“MySQL要支持完整的中文字符集,应该设置为GBK编码。”,将utf8修改为GBK后,重新生成的数据,中文也显示正常。

    难道是数据库中一定要有这个character-set-server?将配置文件中此参数值注释掉后,重新插入数据,测试发现中文又显示为乱码了。

    同时需要关注:

    1、数据库字符集,比如为utf-8.

    2、数据库创建表时为表设置的字符集,表中字段的字符集。尤其是开始数据库字符集设置错误的情况下,需要同步修改。

    查看设置字符集

    # 查看MySQL字符集设置情况
    show variables like 'character_set%';
     
    # 查看库的字符集
    show create database db;
     
    # 查看表的字符集,实际为查看表的建表SQL
    show create table db_tbG
     
    # 查询所有
    show collation;
     
    # 设置表的字符集
    set tables utf8;

    解决方法:

    1>系统方面
    cat /etc/sysconfig/i18n
    LANG="zh_CN.UTF-8"
     
    2>客户端(程序),调整字符集为latin1。
    mysql> set names latin1;        #临时生效
    Query OK, 0 rows affected (0.00 sec)
        #更改my.cnf客户端模块的参数,实现set name latin1 的效果,并且永久生效。
        [client]
    default-character-set=latin1
    #无需重启服务,退出登录就生效,相当于set name latin1。
     
    3>服务端,更改my.cnf参数
    [mysqld]
    default-character-set=latin1        #适合5.1及以前版本
    character-set-server=latin1         #适合5.5
     
    4>库、表、程序
    #建表指定utf8字符集
    mysql> create database nick_defailtsss DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    Query OK, 1 row affected (0.00 sec)

    看到一篇文章,详细介绍了乱码:FaceBook专家:10分钟彻底解决MySQL乱码问题?

    目录如下:

    Part 1 字符集和字符编码
    
    · 什么是字符集
    
    · 什么是字符编码
    
    · UTF-8和Unicode的关系
    
    · UTF-8编码简介
    
    · 为什么会出现乱码
    
    · 如何识别乱码的本来想要表达的文字
    
    · 常见问题处理之Emoji 
    
    Part 2 MySQL乱码
    
    · MySQL出现乱码的原因
    
    · 如何避免乱码
  • 相关阅读:
    mongodb搭建
    使用systemctl管理服务
    常用命令--find
    linux中的常用信号
    bash 中的特殊变量
    tomcat开启PID文件
    django基础入门
    Redis源码编译安装
    DRF路由组件
    Django/DRF序列化
  • 原文地址:https://www.cnblogs.com/kongzhongqijing/p/5583330.html
Copyright © 2011-2022 走看看