首页 数据库 mysql教程 [转]mysql 乱码问题解决终结_MySQL

[转]mysql 乱码问题解决终结_MySQL

Jun 01, 2016 pm 01:51 PM
中文 如何 文章

又一次成功解决Mysql乱码问题
(MYSQL,问题,MYSQL数据库,乱码)

以前在我的博客上发过文章总结我遇到的数据及网页上中文乱码的处理办法[再谈乱码问题,如何解决MYSQL数据中文乱码问题] [解决jsp,tomcat,MYSQL下中文乱码问题] ,但是,不幸的是,今天又遇到了,用过以前的办法,没能解决,我相信绝对不是网页的问题.因为,我在MYSQL里直接添加中文的数据能在网页上正常显示, 可是在网页中操作添加的数据,到MYSQL数据库里一看,全是???问号.我下断点,跟踪进去看了,程序中最后处理到数据库操作时,还是中文,操作到数据 库后,就是?问号了.

后来找了很多资料,终于把这个问题解决,由于能直接在MYSQL数据库里添加中文数据,并且能正常显示,说明我的表都使用了正确的字符编码,经过查看后,确认了,我全部的表以及字段都使用了UTF-8的编码,但是为什么程序添加的中文数据就不行呢?

其 实,原因在于MYSQL服务器使用的默认编码,以及数据库的默认编码,很多人已经很小心的在建立表时关注表的字符编码,却忽略了数据库的字符编码,而在没 指定数据库的字符编码时,创建的数据库就使用MYSQL服务器的默认编码,但是,如果MYSQL服务器的配置文件没有指定编码时,很可能就是使用的 latin1编码.
查看服务器和数据库使用何种编码的MYSQL命令为:SHOW VARIABLES LIKE 'character_set_%';  以及 SHOW VARIABLES LIKE 'collation_%'; 看到里面使用的编码了,我本应该使用的是utf8,所以,不是utf8的,那就说明问题在这里了.

运行命令:SHOW VARIABLES LIKE 'character_set_%'; 结果如下
'character_set_client', 'utf8'
'character_set_connection', 'utf8'
'character_set_database', 'latin1'
'character_set_filesystem', 'binary'
'character_set_results', 'utf8'
'character_set_server', 'latin1'
'character_set_system', 'utf8'
'character_sets_dir', 'D:/soft_work/mysql/share/charsets/'
果然发现有几个不对的
运行命令:SHOW VARIABLES LIKE 'collation_%'; 结果如下
'collation_connection', 'utf8_general_ci'
'collation_database', 'latin1_general_ci'
'collation_server', 'latin1_general_ci'

那怎么办呢,只要把那几个的编码改成utf8的,那应该就可以了.
1: 在Mysql的配置文件 my.ini (一般在c:/windows/下面) 里加上服务器的默认编码配置: default-character-set=utf8
2: 修 改你的数据库的字符编码:进入Mysql数据库,通过命令修改你的数据库字符编码: ALTER DATABASE `databaseName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci  (修改后需要重启Mysql数据库)
3: 如果你的表以及表里的字段使用了不正确的字符编码,同样需要修正过来:命令:
 修改表的编码: ALTER TABLE `tableName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
 修改字段的编码: ALTER TABLE `tableName` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
(做好了时,再跑一下上面那两个查看字符编码的命令,看看是否全部都变成了utf8)

4: 如 果还无效的话,再尝试使用这个MYSQL数据库连接字符串:  jdbc:mysql://localhost:3306/xxxx?useUnicode=true&characterEncoding=UTF-8 (有时可能需要将符号(&)转码写成(&))

 

==============================================================
补充材料一:
==============================================================
mysql字符编码是版本4.1引入的,支持多国语言,而且一些特性已经超过了其他的数据库系统。
我们可以在MySQL Command Line Client 下输入如下命令查看mysql的字符集
mysql> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     | 2      |
| dec8     | DEC West European           | dec8_swedish_ci     | 1      |
| cp850    | DOS West European           | cp850_general_ci    | 1      |
| hp8      | HP West European            | hp8_english_ci      | 1      |
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    | 1      |
| latin1   | cp1252 West European        | latin1_swedish_ci   | 1      |
| latin2   | ISO 8859-2 Central European | latin2_general_ci   | 1      |
| swe7     | 7bit Swedish                | swe7_swedish_ci     | 1      |
| ascii    | US ASCII                    | ascii_general_ci    | 1      |
| ujis     | EUC-JP Japanese             | ujis_japanese_ci    | 3      |
| sjis     | Shift-JIS Japanese          | sjis_japanese_ci    | 2      |
| hebrew   | ISO 8859-8 Hebrew           | hebrew_general_ci   | 1      |
| tis620   | TIS620 Thai                 | tis620_thai_ci      | 1      |
| euckr    | EUC-KR Korean               | euckr_korean_ci     | 2      |
| koi8u    | KOI8-U Ukrainian            | koi8u_general_ci    | 1      |
| gb2312   | GB2312 Simplified Chinese   | gb2312_chinese_ci   | 2      |
| greek    | ISO 8859-7 Greek            | greek_general_ci    | 1      |
| cp1250   | Windows Central European    | cp1250_general_ci   | 1      |
| gbk      | GBK Simplified Chinese      | gbk_chinese_ci      | 2      |
| latin5   | ISO 8859-9 Turkish          | latin5_turkish_ci   | 1      |
| armscii8 | ARMSCII-8 Armenian          | armscii8_general_ci | 1      |
| utf8     | UTF-8 Unicode               | utf8_general_ci     | 3      |
| ucs2     | UCS-2 Unicode               | ucs2_general_ci     | 2      |
| cp866    | DOS Russian                 | cp866_general_ci    | 1      |
| keybcs2  | DOS Kamenicky Czech-Slovak  | keybcs2_general_ci  | 1      |
| macce    | Mac Central European        | macce_general_ci    | 1      |
| macroman | Mac West European           | macroman_general_ci | 1      |
| cp852    | DOS Central European        | cp852_general_ci    | 1      |
| latin7   | ISO 8859-13 Baltic          | latin7_general_ci   | 1      |
| cp1251   | Windows Cyrillic            | cp1251_general_ci   | 1      |
| cp1256   | Windows Arabic              | cp1256_general_ci   | 1      |
| cp1257   | Windows Baltic              | cp1257_general_ci   | 1      |
| binary   | Binary pseudo charset       | binary              | 1      |
| geostd8  | GEOSTD8 Georgian            | geostd8_general_ci  | 1      |
| cp932    | SJIS for Windows Japanese   | cp932_japanese_ci   | 2      |
| eucjpms  | UJIS for Windows Japanese   | eucjpms_japanese_ci | 3      |
+----------+-----------------------------+---------------------+--------+
36 rows in set (0.02 sec)
更多mysql的字符集知识可以参考本论坛的
http://www.phpfans.net/bbs/viewt ... &extra=page%3D1

字 符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。
查看系统的字符集和排序方式的设定可以通过下面的两条命令:
mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+-------------------------------------------+
| Variable_name            | Value                                     |
+--------------------------+-------------------------------------------+
| character_set_client     | latin1                                    |
| character_set_connection | latin1                                    |
| character_set_database   | latin1                                    |
| character_set_filesystem | binary                                    |
| character_set_results    | latin1                                    |
| character_set_server     | latin1                                    |
| character_set_system     | utf8                                      |
| character_sets_dir       | D:/MySQL/MySQL Server 5.0/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.06 sec)
mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.02 sec)


==============================================================
补充材料二: mysql字符集编码 详细说明
--------------------------------------------------------------
原文地址:http://www.phpfans.net/bbs/viewthread.php?tid=296&extra=page%3D1
==============================================================
mysql字符集编码
字符集和整理
整理 描述
armscii8   (ARMSCII-8 Armenian)
armscii8_bin   亚美尼亚语,   二进制
armscii8_general_ci  亚美尼亚语,   不区分大小写
ascii    (US ASCII)
ascii_bin   西欧 (多语言),   二进制
ascii_general_ci  西欧 (多语言),   不区分大小写
big5    (Big5 Traditional Chinese)
big5_bin   繁体中文,   二进制
big5_chinese_ci  繁体中文,   不区分大小写
binary    (Binary pseudo charset)
binary    二进制
cp1250    (Windows Central European)
cp1250_bin   中欧 (多语言),   二进制
cp1250_croatian_ci  克罗地亚语,   不区分大小写
cp1250_czech_cs  捷克语,   区分大小写
cp1250_general_ci  中欧 (多语言),   不区分大小写
cp1251    (Windows Cyrillic)
cp1251_bin   西里尔语 (多语言),  二进制
cp1251_bulgarian_ci  保加利亚语,   不区分大小写
cp1251_general_ci  西里尔语 (多语言),  不区分大小写
cp1251_general_cs  西里尔语 (多语言),  区分大小写
cp1251_ukrainian_ci  乌克兰语,   不区分大小写
cp1256    (Windows Arabic)
cp1256_bin   阿拉伯语,   二进制
cp1256_general_ci  阿拉伯语,   不区分大小写
cp1257    (Windows Baltic)
cp1257_bin   巴拉克语 (多语言),  二进制
cp1257_general_ci  巴拉克语 (多语言),  不区分大小写
cp1257_lithuanian_ci  立陶宛语,   不区分大小写
cp850    (DOS West European)
cp850_bin   西欧 (多语言),   二进制
cp850_general_ci  西欧 (多语言),   不区分大小写
cp852    (DOS Central European)
cp852_bin   中欧 (多语言),   二进制
cp852_general_ci  中欧 (多语言),   不区分大小写
cp866    (DOS Russian)
cp866_bin   俄语,    二进制
cp866_general_ci  俄语,    不区分大小写
cp932    (SJIS for Windows Japanese)
cp932_bin   日语,    二进制
cp932_japanese_ci  日语,    不区分大小写
dec8    (DEC West European)
dec8_bin   西欧 (多语言),   二进制
dec8_swedish_ci  瑞典语,   不区分大小写
eucjpms   (UJIS for Windows Japanese)
eucjpms_bin   日语,    二进制
eucjpms_japanese_ci  日语,    不区分大小写
euckr (EUC-KR Korean)
euckr_bin   朝鲜语,   二进制
euckr_korean_ci  朝鲜语,   不区分大小写
gb2312    (GB2312 Simplified Chinese)
gb2312_bin   简体中文,   二进制
gb2312_chinese_ci  简体中文,   不区分大小写
gbk    (GBK Simplified Chinese)
gbk_bin   简体中文,   二进制
gbk_chinese_ci   简体中文,   不区分大小写
geostd8   (GEOSTD8 Georgian)
geostd8_bin   乔治亚语,   二进制
geostd8_general_ci  乔治亚语,   不区分大小写
greek    (ISO 8859-7 Greek)
greek_bin   希腊语,   二进制
greek_general_ci  希腊语,   不区分大小写
hebrew    (ISO 8859-8 Hebrew)
hebrew_bin   希伯来语,   二进制
hebrew_general_ci  希伯来语,   不区分大小写
hp8    (HP West European)
hp8_bin   西欧 (多语言),   二进制
hp8_english_ci   英语,    不区分大小写
keybcs2   (DOS Kamenicky Czech-Slovak)
keybcs2_bin   捷克斯洛伐克语,   二进制
keybcs2_general_ci  捷克斯洛伐克语,  不区分大小写
koi8r    (KOI8-R Relcom Russian)
koi8r_bin   俄语,    二进制
koi8r_general_ci  俄语,    不区分大小写
koi8u    (KOI8-U Ukrainian)
koi8u_bin   乌克兰语,   二进制
koi8u_general_ci  乌克兰语,   不区分大小写
latin1    (cp1252 West European)
latin1_bin   西欧 (多语言),   二进制
latin1_danish_ci  丹麦语,   不区分大小写
latin1_general_ci  西欧 (多语言),   不区分大小写
latin1_general_cs  西欧 (多语言),   区分大小写
latin1_german1_ci  德语 (字典),   不区分大小写
latin1_german2_ci  德语 (电话本),   不区分大小写
latin1_spanish_ci  西班牙语,   不区分大小写
latin1_swedish_ci  瑞典语,   不区分大小写
整理 描述
latin2    (ISO 8859-2 Central European)
latin2_bin   中欧 (多语言),   二进制
latin2_croatian_ci  克罗地亚语,   不区分大小写
latin2_czech_cs  捷克语,   区分大小写
latin2_general_ci  中欧 (多语言),   不区分大小写
latin2_hungarian_ci  匈牙利语,   不区分大小写
latin5    (ISO 8859-9 Turkish)
latin5_bin   土耳其语,   二进制
latin5_turkish_ci  土耳其语,   不区分大小写
latin7    (ISO 8859-13 Baltic)
latin7_bin   巴拉克语 (多语言),  二进制
latin7_estonian_cs  爱沙尼亚语,   区分大小写
latin7_general_ci  巴拉克语 (多语言),  不区分大小写
latin7_general_cs  巴拉克语 (多语言),  区分大小写
macce    (Mac Central European)
macce_bin   中欧 (多语言),   二进制
macce_general_ci  中欧 (多语言),   不区分大小写
macroman   (Mac West European)
macroman_bin   西欧 (多语言),   二进制
macroman_general_ci  西欧 (多语言),   不区分大小写
sjis    (Shift-JIS Japanese)
sjis_bin   日语,    二进制
sjis_japanese_ci  日语,    不区分大小写
swe7    (7bit Swedish)
swe7_bin   瑞典语,   二进制
swe7_swedish_ci  瑞典语,   不区分大小写
tis620    (TIS620 Thai)
tis620_bin   泰语,    二进制
tis620_thai_ci   泰语,    不区分大小写
ucs2    (UCS-2 Unicode)
ucs2_bin Unicode  (多语言),   二进制
ucs2_czech_ci   捷克语,   不区分大小写
ucs2_danish_ci   丹麦语,   不区分大小写
ucs2_esperanto_ci  未知,    不区分大小写
ucs2_estonian_ci  爱沙尼亚语,   不区分大小写
ucs2_general_ci  Unicode (多语言),  不区分大小写
ucs2_hungarian_ci  匈牙利语,   不区分大小写
ucs2_icelandic_ci  冰岛语,   不区分大小写
ucs2_latvian_ci  拉脱维亚语,   不区分大小写
ucs2_lithuanian_ci  立陶宛语,   不区分大小写
ucs2_persian_ci  波斯语,   不区分大小写
ucs2_polish_ci   波兰语,   不区分大小写
ucs2_roman_ci   西欧,    不区分大小写
ucs2_romanian_ci  罗马尼亚语,   不区分大小写
ucs2_slovak_ci   斯洛伐克语,   不区分大小写
ucs2_slovenian_ci  斯洛文尼亚语,   不区分大小写
ucs2_spanish2_ci  传统西班牙语,   不区分大小写
ucs2_spanish_ci  西班牙语,   不区分大小写
ucs2_swedish_ci  瑞典语,   不区分大小写
ucs2_turkish_ci  土耳其语,   不区分大小写
ucs2_unicode_ci  Unicode (多语言),  不区分大小写
ujis    (EUC-JP Japanese)
ujis_bin   日语,    二进制
ujis_japanese_ci  日语,    不区分大小写
utf8    (UTF-8 Unicode)
utf8_bin   Unicode (多语言),  二进制
utf8_czech_ci   捷克语,   不区分大小写
utf8_danish_ci   丹麦语,   不区分大小写
utf8_esperanto_ci  未知,    不区分大小写
utf8_estonian_ci  爱沙尼亚语,   不区分大小写
utf8_general_ci  Unicode (多语言),  不区分大小写
utf8_hungarian_ci  匈牙利语,   不区分大小写
utf8_icelandic_ci  冰岛语,   不区分大小写
utf8_latvian_ci  拉脱维亚语,   不区分大小写
utf8_lithuanian_ci  立陶宛语,   不区分大小写
utf8_persian_ci  波斯语,   不区分大小写
utf8_polish_ci   波兰语,   不区分大小写
utf8_roman_ci   西欧,    不区分大小写
utf8_romanian_ci  罗马尼亚语,   不区分大小写
utf8_slovak_ci   斯洛伐克语,   不区分大小写
utf8_slovenian_ci  斯洛文尼亚语,   不区分大小写
utf8_spanish2_ci  传统西班牙语,   不区分大小写
utf8_spanish_ci  西班牙语,   不区分大小写
utf8_swedish_ci  瑞典语,   不区分大小写
utf8_turkish_ci  土耳其语,   不区分大小写
utf8_unicode_ci  Unicode (多语言),  不区分大小写

绿色通道:好文要顶关注我收藏该文与我联系
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系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无尽的。

热门文章

仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前 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、回到设

今日头条发布文章怎么才能有收益?今日头条发布文章获得更多收益方法! 今日头条发布文章怎么才能有收益?今日头条发布文章获得更多收益方法! Mar 15, 2024 pm 04:13 PM

一、今日头条发布文章怎么才能有收益?今日头条发布文章获得更多收益方法!1.开通基础权益:原创文章选择投放广告可获得收益,视频必须要原创横屏才会有收益。2.开通百粉权益:粉丝量达到百粉以上,微头条、原创问答创作及问答均可获得收益。3.坚持原创作品:原创作品包含文章、微头条及问题等,要求300字以上。注意违规抄袭作品作为原创发布,会被扣信用分,即使有收益也会被扣除。4.垂直度:做专业领域一类的文章,不能随意跨领域写文章,会得不到合适的推荐,达不到作品的专和精,难以吸引粉丝读者。5.活跃度:活跃度高,

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的字体,并确保选择支持中文字符的字体。以下是一些具体的步骤和代码示例来解决这个问题:第一步:下载中文字体文件首先,我们需要

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

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

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

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

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

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

如何将windows 7的语言设置为中文 如何将windows 7的语言设置为中文 Dec 21, 2023 pm 10:07 PM

有些朋友可能会在安装系统时不小心设置成了英文,结果所有界面都变成了英文,看都看不懂。其实我们可以在控制面板中设置语言,将语言更改为中文,下面就一起来看一下更改的方法吧。win7如何更改语言为中文1、首先点击屏幕左下角的按钮,然后选择“ControlPanel”2、找到“Clock,Language,andRegion”下的“Changedispalylanguage”3、点击下方“English”就可以在下拉菜单中选择简体中文了。4、确定之后点击“Logoffnow”注销并重启电脑。5、回来之后

See all articles