首页 数据库 mysql教程 分享mysql中文乱码的解决办法

分享mysql中文乱码的解决办法

Jun 01, 2016 am 09:57 AM
中文 乱码

修改mysql配置解决乱码

首先:

用show variables like “%colla%”;show varables like “%char%”;这两条命令查看数据库与服务端的字符集设置

如果查看出来都是gbk2312,或 gbk,那么就只能支持简体中文,繁体和一些特殊符号是不能插入的,我们只有修改字符集为UTF-8,

修改方法如下:

用记事本或UitraEdit打开mysql数据库安装目录下的my.ini文件打开, 然后Ctrl+F搜索default-character-set,将后面的字符集修改为UTF8,注意要修改两个地方,一个事客户端的,一个是服务端的。

然后保存,重启mysql服务、、进去继续用show variables like “%colla%”;show varables like “%char%”;着两条语句查询一下字符集

数据表和连接部分的编码设置

设置数据库和数据表编码

要解决乱码问题,首先必须弄清楚数据库和数据表用什么编码。如果没有指明,将是默认的latin1。
用得最多的应该是这3种字符集 gb2312,gbk,utf8。
如何去指定数据库和数据表的字符集呢?下面也gbk为例:
【在MySQL Command Line Client创建数据库 】

<code class="sql">mysql> CREATE TABLE `mysqlcode` (
  -> `id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  -> `content` VARCHAR( 255 ) NOT NULL
  -> ) TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;
  Query OK, 0 rows affected, 1 warning (0.03 sec)</code>
登录后复制

其中后面的 TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;就是指定数据库的字符集,COLLATE (校勘),让mysql同时支持多种编码的数据库。

当然也可以通过如下指令修改数据库数据表的字符集:

<code class="sql">alter database mysqlcode default character set 'gbk'.</code>
登录后复制

前面已经设置了服务器、数据库和数据表的编码,那么数据库中的编码便都是gbk,中文可以存储进去。
但是如果你要通过执行insert或select等操作时,仍然会出现中文乱码问题,这是因为还没设置“连接(connection)”部分的编码,而insert、select等数据库操作都包含与数据库的连接动作。如果不信,你现在可以执行下面的sql文试一试:

<code class="sql">mysql> insert into mysqlcode values(null,'代码分享');</code>
登录后复制

设置连接编码

设置了服务器、数据库和数据表部分的编码,必须设置连接编码。连接编码设置如下:

<code class="sql">mysql> SET character_set_client='gbk';
mysql> SET character_set_connection='gbk'
mysql> SET character_set_results='gbk'</code>
登录后复制

设置好连接编码,下面便可以成功插入中文了:

<code class="sql">mysql> insert into mysqlcode values(null,'java爱好者');
Query OK, 0 rows affected (0.02 sec)</code>
登录后复制

其实,上面设置连接编码的三条命令可以简化为一条:

<code class="sql">mysql> set names 'gbk';</code>
登录后复制

设置好了连接编码后,在select查询时,也能正确显示中文:

<code class="sql">mysql> select * from mysqlcode;
+----+-----------+
| id | content |
+----+-----------+
| 1   | java爱好着 |
+----+-----------+
1 row in set (0.00 sec)</code>
登录后复制

 

查询mysql中文记录乱码问题

我们这里以gb2312编码乱码为实例来介绍

如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询排序等问题,可以使用binary属性约束,例如:

<code class="sql">create table my_table ( name varchar(20) binary not null default'')type=myisam default charset latin1;</code>
登录后复制

附:旧数据升级办法
以原来的字符集为latin1为例,升级成为utf8的字符集。

原来的表:old_table (default charset=latin1),新表:new_table(defaultcharset=utf8)。

第一步:导出旧数据

<code class="sql">mysqldump --default-character-set=latin1 -hlocalhost -uroot -Bmy_db --tables old_table > old.sql</code>
登录后复制

第二步:转换编码

<code class="sql">iconv -t utf-8 -f gb2312 -c old.sql > new.sql</code>
登录后复制

在这里,假定原来的数据默认是gb2312编码。

第三步:导入

修改old.sql,增加一条sql语句: "SET NAMES utf8;",保存。

<code class="sql">mysql -hlocalhost -uroot my_db </code>
登录后复制

大功告成!!

mysql导入数据乱码解决 

出现乱码语句:mysql -hlocalhost -uroot -proot test

正确的语句:mysql -hlocalhost -uroot -proot test

解决mysql导入导出数据乱码问题

首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8,例如下面的代码:

<code class="sql">mysqldump   -uroot  -p  --default-character-set=utf8   dbname tablename  >  bak.sql</code>
登录后复制

那么导入数据的时候也要使用--default-character-set=utf8:

<code>mysql -uroot -p --default-character-set=utf8 dbname </code>
登录后复制

这样统一编码就解决了mysql数据迁移中的乱码问题了

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

使命召唤战区手游怎么设置中文 使命召唤战区手游怎么设置中文 Mar 22, 2024 am 08:41 AM

使命召唤战区作为全新上线的一款手游,有很多的玩家都非常的好奇要怎么样才能够将这款游戏的语言设置为中文,其实非常的简单,玩家只需要下载中文的语言包,随后进行使用就可以进行修改了,详细的内容可以在这篇中文设置方法介绍之中进行了解,让我们一起来看看吧。使命召唤战区手游怎么设置中文1、首先进入游戏,点击界面右上角的设置图标。2、在出现的菜单栏中,找到【Download】这个选项并且点击。3、在这个页面中选择【SIMPLIFIEDCHINESE】(简体中文),就可以对简体中文的安装包进行下载了。4、回到设

Excel表格怎么设置显示中文?Excel切换中文操作教程 Excel表格怎么设置显示中文?Excel切换中文操作教程 Mar 14, 2024 pm 03:28 PM

  Excel表格是现在很多人都在使用的办公软件之一,有些用户因为电脑是win11系统,因此显示的是英文界面,想要切换成中文界面,但是不知道应该怎么操作,针对这个问题,本期小编就来为广大用户们进行解答,一起来看看今日软件教程所分享的内容吧。  Excel切换中文操作教程:  1、进入软件,点击页面上方工具栏左侧的“File”选项。  2、在下方给出的选项中选择“options”。  3、进入新界面后,点击左侧的“language”选项

如何在PHP Dompdf中正确显示中文字符 如何在PHP Dompdf中正确显示中文字符 Mar 05, 2024 pm 01:03 PM

如何在PHPDompdf中正确显示中文字符在使用PHPDompdf生成PDF文件时,遇到中文字符显示乱码的问题是一个常见的挑战。这是因为Dompdf默认使用的字体库中不包含中文字符集。为了正确显示中文字符,我们需要手动设置Dompdf的字体,并确保选择支持中文字符的字体。以下是一些具体的步骤和代码示例来解决这个问题:第一步:下载中文字体文件首先,我们需要

VSCode 设置中文:完全指南 VSCode 设置中文:完全指南 Mar 25, 2024 am 11:18 AM

VSCode设置中文:完全指南在软件开发中,VisualStudioCode(简称VSCode)是一个常用的集成开发环境。对于使用中文的开发者来说,将VSCode设置为中文界面可以提升工作效率。本文将为大家提供一个完整的指南,详细介绍如何将VSCode设置为中文界面,并提供具体的代码示例。第一步:下载安装语言包在打开VSCode后,点击左

修复PHP Dompdf中文乱码的有效途径 修复PHP Dompdf中文乱码的有效途径 Mar 05, 2024 pm 04:45 PM

标题:修复PHPDompdf中文乱码的有效途径在使用PHPDompdf生成PDF文档时,中文字符出现乱码是一个常见的问题。这一问题通常源于Dompdf默认不支持中文字符集,导致中文内容无法正确显示。为了解决这一问题,我们需要采取一些有效的途径来修复PHPDompdf中文乱码的问题。1.使用自定义字体文件一个解决Dompdf中文乱码问题的有效途径是使用

wwe2k24会有中文吗 wwe2k24会有中文吗 Mar 13, 2024 pm 04:40 PM

《WWE2K24》乃由VisualConcepts倾力打造的竞速体育游,已于2024年3月9日正式问世。此款游戏倍受赞誉,众多玩家热切关注其是否设有中文版。遗憾的是,迄今为止,《WWE2K24》尚未推出中文语言版本。wwe2k24会有中文吗答:目前不支持中文。WWE2K24在Steam国区的标准版售价为199元,豪华版为329元,纪念版为395元。该游戏的配置要求较高,无论处理器、显卡或运行内存等方面,均有一定标准。官方推荐配置以及最低配置介绍:

解决PHP写入txt文件中文乱码的技巧 解决PHP写入txt文件中文乱码的技巧 Mar 27, 2024 pm 01:18 PM

解决PHP写入txt文件中文乱码的技巧随着互联网的迅猛发展,PHP作为一种广泛应用的编程语言,被越来越多的开发者所使用。在PHP开发中,经常需要对文本文件进行读写操作,其中包括写入中文内容的txt文件。然而,由于编码格式的问题,有时候会导致写入的中文出现乱码。本文将介绍一些解决PHP写入txt文件中文乱码的技巧,并提供具体的代码示例。问题分析在PHP中,文本

谷歌浏览器如何把中文改成英文模式? 谷歌浏览器如何把中文改成英文模式? Mar 13, 2024 pm 07:31 PM

  谷歌浏览器如何把中文改成英文?一些小伙伴想要将谷歌浏览器设置为英文,这样就能够在使用过程中不断的提高自己的英文了。那么设置为英文该如何操作呢?谷歌浏览器默认是中文的,下面小编给大家带来谷歌浏览器设置语言为英文的方法,一起来看看吧。  设置步骤  1、打开【谷歌浏览器】,如下图所示。  2、点击谷歌浏览器右上角界面【三点】菜单,如下图所示。  3、进入到菜单页面后,找到【设置】,如下图所示。  4、进入到设置页面后,点击【语言】选项,如下图所示。  5、在语言界面选择【添加语言】,如下图所示。

See all articles