搜尋
首頁資料庫mysql教程[转]mysql 乱码问题解决终结_MySQL

又一次成功解决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
MySQL:世界上最受歡迎的數據庫的簡介MySQL:世界上最受歡迎的數據庫的簡介Apr 12, 2025 am 12:18 AM

MySQL是一種開源的關係型數據庫管理系統,主要用於快速、可靠地存儲和檢索數據。其工作原理包括客戶端請求、查詢解析、執行查詢和返回結果。使用示例包括創建表、插入和查詢數據,以及高級功能如JOIN操作。常見錯誤涉及SQL語法、數據類型和權限問題,優化建議包括使用索引、優化查詢和分錶分區。

MySQL的重要性:數據存儲和管理MySQL的重要性:數據存儲和管理Apr 12, 2025 am 12:18 AM

MySQL是一個開源的關係型數據庫管理系統,適用於數據存儲、管理、查詢和安全。 1.它支持多種操作系統,廣泛應用於Web應用等領域。 2.通過客戶端-服務器架構和不同存儲引擎,MySQL高效處理數據。 3.基本用法包括創建數據庫和表,插入、查詢和更新數據。 4.高級用法涉及復雜查詢和存儲過程。 5.常見錯誤可通過EXPLAIN語句調試。 6.性能優化包括合理使用索引和優化查詢語句。

為什麼要使用mysql?利益和優勢為什麼要使用mysql?利益和優勢Apr 12, 2025 am 12:17 AM

選擇MySQL的原因是其性能、可靠性、易用性和社區支持。 1.MySQL提供高效的數據存儲和檢索功能,支持多種數據類型和高級查詢操作。 2.採用客戶端-服務器架構和多種存儲引擎,支持事務和查詢優化。 3.易於使用,支持多種操作系統和編程語言。 4.擁有強大的社區支持,提供豐富的資源和解決方案。

描述InnoDB鎖定機制(共享鎖,獨家鎖,意向鎖,記錄鎖,間隙鎖,下一鍵鎖)。描述InnoDB鎖定機制(共享鎖,獨家鎖,意向鎖,記錄鎖,間隙鎖,下一鍵鎖)。Apr 12, 2025 am 12:16 AM

InnoDB的鎖機制包括共享鎖、排他鎖、意向鎖、記錄鎖、間隙鎖和下一個鍵鎖。 1.共享鎖允許事務讀取數據而不阻止其他事務讀取。 2.排他鎖阻止其他事務讀取和修改數據。 3.意向鎖優化鎖效率。 4.記錄鎖鎖定索引記錄。 5.間隙鎖鎖定索引記錄間隙。 6.下一個鍵鎖是記錄鎖和間隙鎖的組合,確保數據一致性。

MySQL查詢性能差的常見原因是什麼?MySQL查詢性能差的常見原因是什麼?Apr 12, 2025 am 12:11 AM

MySQL查询性能不佳的原因主要包括没有使用索引、查询优化器选择错误的执行计划、表设计不合理、数据量过大和锁竞争。1.没有索引导致查询缓慢,添加索引后可显著提升性能。2.使用EXPLAIN命令可以分析查询计划,找出优化器错误。3.重构表结构和优化JOIN条件可改善表设计问题。4.数据量大时,采用分区和分表策略。5.高并发环境下,优化事务和锁策略可减少锁竞争。

您什麼時候應該使用複合索引與多個單列索引?您什麼時候應該使用複合索引與多個單列索引?Apr 11, 2025 am 12:06 AM

在數據庫優化中,應根據查詢需求選擇索引策略:1.當查詢涉及多個列且條件順序固定時,使用複合索引;2.當查詢涉及多個列但條件順序不固定時,使用多個單列索引。複合索引適用於優化多列查詢,單列索引則適合單列查詢。

如何識別和優化MySQL中的慢速查詢? (慢查詢日誌,performance_schema)如何識別和優化MySQL中的慢速查詢? (慢查詢日誌,performance_schema)Apr 10, 2025 am 09:36 AM

要優化MySQL慢查詢,需使用slowquerylog和performance_schema:1.啟用slowquerylog並設置閾值,記錄慢查詢;2.利用performance_schema分析查詢執行細節,找出性能瓶頸並優化。

MySQL和SQL:開發人員的基本技能MySQL和SQL:開發人員的基本技能Apr 10, 2025 am 09:30 AM

MySQL和SQL是開發者必備技能。 1.MySQL是開源的關係型數據庫管理系統,SQL是用於管理和操作數據庫的標準語言。 2.MySQL通過高效的數據存儲和檢索功能支持多種存儲引擎,SQL通過簡單語句完成複雜數據操作。 3.使用示例包括基本查詢和高級查詢,如按條件過濾和排序。 4.常見錯誤包括語法錯誤和性能問題,可通過檢查SQL語句和使用EXPLAIN命令優化。 5.性能優化技巧包括使用索引、避免全表掃描、優化JOIN操作和提升代碼可讀性。

See all articles

熱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尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具