欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何進行mysql亂碼產(chǎn)生的探討

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)如何進行MySQL亂碼產(chǎn)生的探討,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

專注于為中小企業(yè)提供做網(wǎng)站、網(wǎng)站設(shè)計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)宜都免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

實驗一

1。首先,在下面情況下:

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:\Programs\mysql5045\share\charsets\ |

+--------------------------+---------------------------------------+

建表,并加入3個記錄:大,阿,愛

2。set character_set_results=utf8;

則顯示:(cmd窗口中,cmd窗口代碼頁936)

大->麓貿(mào)

阿->擄壟

愛->擄廬

分析編碼:

大U:5927,GBK:B4F3

麓U:9E93,GBK:C2B4

貿(mào)U:8D38,GBK:C3B3

阿U:963F,GBK:B0A2

擄U:63B3,GBK:C2B0

壟U:5784,GBK:C2A2

愛U:7231,GBK:B0AE

擄U:63B3,GBK:C2B0

廬U:5E90,GBK:C2AE

3。改成set character_set_results=gb2312;

一樣是亂碼

4。結(jié)論:

亂碼的產(chǎn)生,是由于單字節(jié)向多字節(jié)擴展引起的。B0A2 如果作為單字節(jié)存儲(雖然表示的是1個漢字,但是因為是latin1單字節(jié),所以認為B0A2是不相關(guān)的兩個字符),此時如果把character_set_results變成utf8多字節(jié),那么數(shù)據(jù)庫mysql 會試圖把每個單字節(jié)擴展成近似的(不知道具體的算法)雙字節(jié)。所以亂碼

反之,多字節(jié)向單字節(jié)轉(zhuǎn)換時,不會有變動,僅僅是原來2各字節(jié)表示的一個字符‘B0A2’變成了表示兩個字符而已。---- 這個說法經(jīng)驗證是錯誤的。

數(shù)據(jù)庫存儲的內(nèi)容(磁盤上,內(nèi)存里)不會受character_set_的影響,只是提交,查詢的過程中,受到字符集轉(zhuǎn)換的影響。

實驗二

1。

create table y (id int, name char(4)) default charset gb2312;

2。在不改變默認character_set_ 是latin1的情況下,如果插入一個漢字,則顯示亂碼

3。改成set names gb2312,顯示沒問題(cmd窗口中,cmd窗口代碼頁936)

4。我原以為如上述實驗1種的結(jié)論2,“多字節(jié)向單字節(jié)轉(zhuǎn)換時,不會有變動”。所以我開始以為,set names gb2312 后,把character_set_results 改成latin1,顯示不會出問題。結(jié)果,

一個漢字,則顯示一個問號;兩個漢字,則顯示兩個問號的亂碼(估計一個問號代表一個字符)。也就是說,改成character_set_results = latin1后,多字節(jié)的數(shù)據(jù)存儲,在向單字節(jié)表示轉(zhuǎn)換時,mysql把提出的信息“縮水了”,把兩個字節(jié),換算成了一個字節(jié)。

5。如何,不讓mysql縮水呢,我想到了character_set_results = binary;結(jié)果,果然顯示正常。

PS

開發(fā)的使用mysql的應用程序,是對應作為獨立的使用自己的character_set_client的字符集的

cmd 窗口登陸mysql,也是作為一個獨立的,擁有自己character_set_client變量的應用

同理,打開不同的cmd窗口,都擁有獨自的character_set_client變量

實驗三07/16/2010

1。建一個默認字符集utf8的表(用navicat ,在utf8的界面下 代碼頁65001),并且插入utf8編碼的漢字;大學;

2。切換到mysql console(代碼頁936)

3。set names gbk; 然后顯示剛才所建立的表,能正確現(xiàn)實嗎?---- 能!當然,只把character_set_results 成gbk,也能正常顯示

實驗四

1。mysql console(代碼頁936)建立一個表x3 ( name char(32) ),默認字符集default charset gbk;

2。默認環(huán)境變量  

| 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_set_client   character_set_connection character_set_results 是latin1的情況下,插入數(shù)據(jù):insert x3 values('大');

顯示:ERROR 1406 (22001): Data too long for column 'name' at row 1

3。set character_set_client=gbk;然后insert x3 values('大');插入沒有問題,但顯然,數(shù)據(jù)經(jīng)過 (character_set_connection=latin1)的轉(zhuǎn)換,已經(jīng)是有損了

4。不管character_set_results 設(shè)不設(shè)成gbk,都不能正常顯示結(jié)果

5。set names gbk;則插入現(xiàn)實都沒問題。并且此時,一個uf8字符集的表的顯示也沒問題(實驗三)。而且進行連接查詢,亦沒問題。

6。當然,set names utf8,如果在一個utf8的軟件界面上,顯示輸出也沒問題(navicat 驗證了)

7。如果設(shè)成set names binary。在936代碼頁的顯示界面上,可以看到,x3依然可以正?,F(xiàn)實;但像實驗三那樣建的表就不能正常顯示了。

--------

分析第2點:Data too long for column 'name' at row 1

我的char 夠長,插入數(shù)據(jù)夠短,所以不是數(shù)據(jù)太長了。也就是說這個提示是錯誤的。

我知道,如果表x3 默認字符集 是latin1的話,插入是沒問題的(一直以來都是這么玩的);這是因為,雖然輸入端mysql console 代碼頁是936,但因為三個主環(huán)境變量character_set_c%都是latin1,所以,mysql 認為insert x3 values('大') 輸入的是2個字符(當然,如果從utf8界面輸入,可能就認為是輸入3個字符)。存儲的自然也是2個字符。顯示的時候也是顯示的2個字符,只不過936代碼頁把這兩個字符自然組合,顯示成漢字了(早期環(huán)境常見現(xiàn)象)。

當默認字符集變?yōu)間bk的時候,發(fā)生了什么?不知道。。。。。

實驗五

一個很狗屎的問題出現(xiàn)了:936  console

環(huán)境變量如 實驗一.1。

mysql> set names latin1;

Query OK, 0 rows affected (0.00 sec)

mysql> create table x4 (

    -> name char(32) primary key);

Query OK, 0 rows affected (0.09 sec)

mysql> drop table x4;

Query OK, 0 rows affected (0.06 sec)

mysql> create table x4 (

    -> name char(32) primary key) default charset utf8;

Query OK, 0 rows affected (0.10 sec)

mysql> insert x4 values('乃');

Query OK, 1 row affected (0.04 sec)

mysql> create table x5 (

    -> name char(32) primary key) default charset gbk;

Query OK, 0 rows affected (0.09 sec)

mysql> insert x5 values('乃');

ERROR 1406 (22001): Data too long for column 'name' at row 1

mysql>

結(jié)論,我實在對實驗四中分析的第3點做出結(jié)論。character_set_system utf8 有關(guān)~~  

上述就是小編為大家分享的如何進行mysql亂碼產(chǎn)生的探討了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

名稱欄目:如何進行mysql亂碼產(chǎn)生的探討
URL分享:http://aaarwkj.com/article40/pjcjeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、關(guān)鍵詞優(yōu)化建站公司、網(wǎng)站改版、外貿(mào)建站、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
亚洲精品日韩国产av| 91欧美视频在线观看| 中文字幕av日韩在线| 久久女婷五月综合色啪色老板| 亚洲国产成人一区二区精品区| 亚洲男人成人性天堂网站| 97在线视频在线播放| 亚洲av最近在线观看| 亚洲精品不卡一二三区| 久久国产综合精品电影| 欧美亚洲另类在线日韩国产 | 男女做爰高清免费视频| 美女床上激情啪啪网页| 99精品欧美一区二区三区视频| 熟妇人妻中文字幕在线| 99精品一二三日韩| 国产亚洲精品免费专线视频| 中国亚洲视频一区二区| 国产亚洲一区二区三区av| 青青草成人公开在线视频| 欧美亚洲综合激情在线| 丰满人妻一区二三区av| 亚洲视频一区视频二区| 成人国产视频免费观看| 欧美日韩亚洲国产精品视频| 欧美伊香蕉久久综合网99| 成人激情视频在线观看| 亚洲天堂男人的天堂狠狠操| 国产在线精品成人欧美| av中文资源在线观看| 亚洲熟女少妇淫语高潮| 国产亚洲一区二区三区午夜| 久久精人妻一区二区三区| 亚洲 精品一区二区| 午夜毛片免费在线播放| 亚洲天堂av日韩在线| 欧美女人又粗又长亚洲| 81精品国产综合久久精品伦理| 人妻少妇被猛烈进入文字幕| 国产黄色一区二区三区四区| 中文字幕一区二区三天|