• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > Mysql中文乱码问题的最佳解决方法

Mysql中文乱码问题的最佳解决方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql中文乱码解决,mysql中文乱码,java mysql中文乱码,mysql中文乱码问题,php mysql 中文乱码等相关知识,希望本文的分享对您有所帮助

一般来说,造成MySQL出现中文乱码的因素主要有下列几点:

1.server本身字符集设定的问题,例如还停留在latin1
2.table的语系设定问题(包含character与collation)
3.客户端程序(例如php)的连线语系设定问题

对此,强烈建议使用utf8编码!因为utf8可以兼容世界上所有字符!

一、避免创建数据库及表出现中文乱码和查看编码方法

1、创建数据库的时候:

CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
</div>

2、建表的时候

CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
</div>

这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 |
+--------------------------+-------------+

</div>

注:以前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';

</div>

2.查看test数据库的编码格式:

mysql> show create database test;
+------------+------------------------------------------------------------------------------------------------+
| Database | Create Database |
+------------+------------------------------------------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |
+------------+------------------------------------------------------------------------------------------------+

</div>

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 |

</div>

二、避免导入数据有中文乱码的问题

1.将数据编码格式保存为utf-8
设置默认编码为utf8:

set names utf8;
</div>

设置数据库db_name默认为utf8:

ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
</div>

设置表tb_name默认编码为utf8:

ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
</div>

导入:

LOAD DATA LOCAL INFILE 'C:\\utf8.txt' INTO TABLE yjdb;
</div>

2.将数据编码格式保存为ansi(即GBK或GB2312)
设置默认编码为gbk:

set names gbk;
</div>

设置数据库db_name默认编码为gbk:

ALTER DATABASE `db_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
</div>

设置表tb_name默认编码为gbk:

ALTER TABLE `tb_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
</div>

导入:

LOAD DATA LOCAL INFILE 'C:\\gbk.txt' INTO TABLE yjdb;
</div>

注:
(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.在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用
utf8或者gbk;

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]
  • MySQL自增列插入0值的解决方案
  • MySQL无法启动1067错误的又一种解决方法(机房断电)
  • 解决mysql导入还原时乱码的问题
  • mysql乱码问题分析与解决方法
  • mysql导出导入中文表解决方法
  • mysql如何按照中文排序解决方案
  • MySQL启动1053错误解决方法
  • mysql导入导出数据中文乱码解决方法小结
  • mysql服务1067错误多种解决方案分享

相关文章

  • 2018-12-05MySql5.6使用validate password 插件加强密码强度的安装及使用方法_MySQL
  • 2018-12-05mysql5.7.21 winx64安装配置图文分享
  • 2017-05-11MySQL内存使用之线程独享介绍
  • 2018-12-05Mysql怎么优化修复数据库表
  • 2018-12-05深入浅出的学习Mysql(收藏)
  • 2018-12-05详解navicat连接mysql时出现1045错误的解决方案
  • 2017-05-11MySQL Cluster如何创建磁盘表方法解读
  • 2018-12-05mysql下为数据库设置交叉权限的方法实例详解
  • 2018-12-05SQLServer2005 Output子句获取刚插入的ID值
  • 2018-12-05MariaDB(MySQL)创建、删除、选择及数据类型使用详解_MySQL

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • ORACLE LATERAL-SQL-INJECTION 个人见解_Oracle应用_脚本之家
    • Ubuntu与windows双系统下共用MySQL数据库的方法
    • MySQL之递归小问题实例分享
    • 通过SQL Server的位运算功能巧妙解决多选查询方法
    • MySQL事务-使用保留点、更改默认的提交行为详解
    • 一些文件未注册导致mssql表文件无法找开的解决方法
    • php限制ip地址范围的实现方法
    • mysql中取字符串中的数字的语句
    • SQL SERVER 2005 最小安装经验
    • 深入了解优化SQL查询-如何写出高性能SQL语句的具体分析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有