2019独角兽企业重金招聘Python工程师标准>>>

MySQL会出现中文乱码的原因不外乎下列几点:
1.server本身设定问题,例如还停留在latin1
2.table的语系设定问题(包含character与collation)
3.客户端程式(例如php)的连线语系设定问题
强烈建议使用utf8!!!!
utf8可以兼容世界上所有字符!!!!
一、避免创建数据库及表出现中文乱码和查看编码方法
1、创建数据库的时候:CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
2、建表的时候 CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

这3个设置好了,基本就不会出问题了,即建库和建表时都使用相同的编码格式。
但是如果你已经建了库和表可以通过以下方式进行查询。
1.查看默认的编码格式:
mysql> show variables like "%char%";
+--------------------------+---------------+
| Variable_name | Value |
+--------------------------+---------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
+--------------------------+-------------+
注:以前2个来确定,可以使用set names utf8,set names gbk设置默认的编码格式;

执行SET NAMES utf8的效果等同于同时设定如下:
SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8';

2.查看test数据库的编码格式:
mysql> show create database test;
+------------+------------------------------------------------------------------------------------------------+
| Database | Create Database |
+------------+------------------------------------------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |
+------------+------------------------------------------------------------------------------------------------+

3.查看yjdb数据库的编码格式:
mysql> show create table yjdb;
| yjdb | CREATE TABLE `yjdb` (
`sn` int(5) NOT NULL AUTO_INCREMENT,
`type` varchar(10) NOT NULL,
`brc` varchar(6) NOT NULL,
`teller` int(6) NOT NULL,
`telname` varchar(10) NOT NULL,
`date` int(10) NOT NULL,
`count` int(6) NOT NULL,
`back` int(10) NOT NULL,
PRIMARY KEY (`sn`),
UNIQUE KEY `sn` (`sn`),
UNIQUE KEY `sn_2` (`sn`)
) ENGINE=MyISAM AUTO_INCREMENT=1826 DEFAULT CHARSET=gbk ROW_FORMAT=DYNAMIC |

二、避免导入数据有中文乱码的问题
1:将数据编码格式保存为utf-8
设置默认编码为utf8:
set names utf8;
设置数据库db_name默认为utf8:
ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
设置表tb_name默认编码为utf8:
ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
导入:
LOAD DATA LOCAL INFILE 'C:\\utf8.txt' INTO TABLE yjdb;
2:将数据编码格式保存为ansi(即GBK或GB2312)
设置默认编码为gbk:
set names gbk;
设置数据库db_name默认编码为gbk:
ALTER DATABASE `db_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
设置表tb_name默认编码为gbk:
ALTER TABLE `tb_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
导入:
LOAD DATA LOCAL INFILE 'C:\\gbk.txt' INTO TABLE yjdb;

注:1.UTF8不要导入gbk,gbk不要导入UTF8;
2.dos下不支持UTF8的显示;
三、解决网页中乱码的问题
 
将网站编码设为 utf-8,这样可以兼容世界上所有字符。
  如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为 GBK, GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK。
1.编辑/etc/my.cnf ,在[mysql]段加入default_character_set=utf8;
2.在编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8;

3.如果用 hibernate,则应该写成:<![CDATA[jdbc:mysql://localhost:3306/daycode?useUnicode=true&characterEncoding=utf8]]>

3.在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用
utf8或者gbk;

转载于:https://my.oschina.net/JiangTun/blog/348375

Mysql中文乱码问题完美解决方案相关推荐

  1. Mysql 中文乱码问题完美解决方案

    Mysql 中文乱码问题完美解决方案 参考文章: (1)Mysql 中文乱码问题完美解决方案 (2)https://www.cnblogs.com/fangyh/p/6286699.html 备忘一下 ...

  2. 【_ 記 】MySQL 中文乱码问题完美解决方案

    MySQL 中文乱码问题完美解决方案 解决乱码的核心思想是统一编码. 我们在使用 MySQL 建数据库和建表时应尽量使用统一的编码,强烈推荐的是 utf8 编码,因为该编码几乎可以兼容世界上所有的字符 ...

  3. mysql中文乱码解决方案_关于MySQL中文乱码的完美解决方案

    当用客户端或用其他方式连接数据键入中文数据后,在client中的显示为乱码,当然这是字符集设置出现了问题.我先后尝试了很多办法 当用客户端或用其他方式连接数据键入中文数据后,在client中的显示为乱 ...

  4. mysql中出现乱码问题_Mysql中文乱码问题完美解决方案

    MySQL会出现中文乱码的原因不外乎下列几点: 1.server本身设定问题,例如还停留在latin1 2.table的语系设定问题(包含character与collation) 3.客户端程式(例如 ...

  5. mysql cluster 乱码_Mysql中文乱码问题完美解决方案

    原文:http://www.2cto.com/database/201108/101151.html MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如还停留在latin ...

  6. mysql中文乱码问题的解决方案

    mysql中有时写入中文时总会出现乱码的情况. 最严重的情况貌似:你在数据库里写入中文保存后就变成乱码! 那么如何解决呢?看了网上了一些资料: 1.修改my.ini文 1. 网上很多帖子说修改该文件, ...

  7. linux下mysql乱码_linux下mysql中文乱码

    登录mysql执行 mysql> show variables like 'character%'; 发现编码有些不是utf-8 修改/etc/mysql/my.cnf,网上说的是/etc/my ...

  8. 图形化mysql出现乱码_关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)...

    最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅. 首先: 用show variables like &quo ...

  9. mysql中文乱码解决方案_Mysql中文乱码解决方案

    Mysql中文乱码解决方案 时间:2017-07-11     来源:华清远见JAVA学院 中文乱码问题一直是我们编程过程中比较常见又让人头疼的问题,但是只要按照标准进行配置,就能很好的避免出现中文乱 ...

最新文章

  1. 实现不可变类如何禁止子类化?
  2. CentOS上编译安装Nginx
  3. python爬虫入门教程-Python 爬虫介绍
  4. JS排序算法之插入排序
  5. excel两表格怎么根据关键词比较指定数据差异
  6. Struts2-boobooke-概述
  7. 读书·2018(14本)
  8. 打造一个无广告无弹窗快速的Windows办公环境(软件推荐)
  9. 剑桥大学计算机专业博士几年毕业,剑桥大学学制是几年
  10. (数字ic验证)从零开始的apb_watchdog验证模块搭建(二、apb直接发送激励与寄存器模型加入)
  11. 让工作效率至少快一倍的秘诀:清单革命
  12. 关闭ssh隧道的几种“优雅”方式
  13. cryptsetup 使用说明 中文翻译
  14. 【飞鱼科技】2022届春季校园招聘火热进行中
  15. Redis 位图数据结构介绍
  16. 一个屌丝程序员的青春(八)
  17. 一加3T系统自带手机铃声及通知铃声
  18. 【WIN 02】Download Tabby for Win10
  19. 《吉尼斯世界纪录大全2022》正式面世:最大规模水下人鱼秀、最大拼插式塑料积木三维景观、同组无人机连续组成最多队形...
  20. 指定输出路径_输出目录下所有文件及文件夹

热门文章

  1. CRM User Status profile中Business Transaction字段的用途 1
  2. Centos7下安装apache2.4 php5.6 pdo_oci oci8
  3. [读书笔记]C#学习笔记七: C#4.0中微小改动-可选参数,泛型的可变性
  4. Tomcat内存溢出解决办法
  5. [转]ASP.NET中常用输出JS脚本的类
  6. [征询意见][投票]先集中力量做好一个开源项目
  7. ASP.NET设置ie打印两法[转载]
  8. javascript操作表单
  9. PHP框架中的日志系统
  10. Android 关于获取摄像头帧数据解码