首頁 資料庫 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 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 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」選項

今日頭條發布文章怎麼有收益?今日頭條發布文章獲得更多收益方法! 今日頭條發布文章怎麼有收益?今日頭條發布文章獲得更多收益方法! Mar 15, 2024 pm 04:13 PM

一、今日頭條發布文章怎麼有收益?今日頭條發布文章獲得更多收益方法! 1.開通基礎權益:原創文章選擇投放廣告可獲得收益,影片必須原創橫屏才會有收益。 2.開通百粉權益:粉絲量達百粉以上,微頭條、原創問答創作及問答均可獲得收益。 3.堅持原創作品:原創作品包含文章、微標題及問題等,要求300字以上。注意違規抄襲作品作為原創發布,會被扣信用分,即使有收益也會被扣除。 4.垂直度:做專業領域一類的文章,不能隨意跨領域寫文章,會得不到合適的推薦,達不到作品的專和精,難以吸引粉絲讀者。 5.活躍度:活躍度高,

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

VSCode設定中文:完整指南在軟體開發中,VisualStudioCode(簡稱VSCode)是一個常用的整合開發環境。對於使用中文的開發者來說,將VSCode設定為中文介面可以提升工作效率。本文將為大家提供一個完整的指南,詳細介紹如何將VSCode設定為中文介面,並提供具體的程式碼範例。第一步:下載安裝語言包開啟VSCode後,點選左

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

如何在PHPDompdf中正確顯示中文字元在使用PHPDompdf產生PDF檔案時,遇到中文字元顯示亂碼的問題是一個常見的挑戰。這是因為Dompdf預設使用的字體庫中不包含中文字元集。為了正確顯示中文字符,我們需要手動設定Dompdf的字體,並確保選擇支援中文字符的字體。以下是一些具體的步驟和程式碼範例來解決這個問題:第一步:下載中文字體檔案首先,我們需要

修復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元。遊戲的配置需求較高,無論處理器、顯示卡或運行記憶體等方面,均有一定標準。官方推薦配置以及最低配置介紹:

如何將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