zhs16gbk对应mysql_数据库的编码浅谈(ZHS16GBK与US7ASCII)
SQL> SELECT RAWTOHEX('郭A軍') from dual;
B9F941BEFC
SQL> select dump('郭A軍') from dual;
Typ=96 Len=5: 185,249,65,190,252
SQL> select chr(185)||chr(249)||chr(65)||chr(190)||chr(252) from dual;
郭A軍
請(qǐng)注意:在ASC碼和十六進(jìn)制碼中,185對(duì)應(yīng)B9,249對(duì)應(yīng)F9,65對(duì)應(yīng)41,190對(duì)應(yīng)BE,252對(duì)應(yīng)FC
而編碼時(shí),185,249兩個(gè)字節(jié)構(gòu)成"郭"字,65一個(gè)字節(jié)構(gòu)成"A"字,190,252兩個(gè)字節(jié)構(gòu)成"軍"字.
本機(jī)測(cè)試環(huán)境中編碼是US7ASCII,是一個(gè)字節(jié)為一個(gè)存儲(chǔ)單位,對(duì)于中文字的處理方式是用兩個(gè)存儲(chǔ)單位連接起來(lái)形成中文字的.
若編碼為ZHS16GBK,則是二個(gè)字節(jié)為一個(gè)存儲(chǔ)單位,其差異性可體現(xiàn)在查ASCII碼值上邊.
如先在US7ASCII的環(huán)境中查"郭"的ASCII碼:
SQL> select ascii('郭') from dual;
185
象前邊已經(jīng)介紹過(guò)的,在此種編碼中是用ASCII碼值為185,249的兩個(gè)字節(jié)拼起來(lái)形成"郭"字的,故按ASCII( )函數(shù)的原理,會(huì)取第一個(gè)字節(jié)的ASCII值.
在US7ASCII的環(huán)境中查"郭"的ASCII碼:
SQL> select ascii('郭') from dual;
47609
因?yàn)樗怯脙蓚€(gè)字節(jié)存儲(chǔ)的,也可以這樣計(jì)算
SQL> select 185*256+249 from dual;
47609
為什么這樣算,相信大家都懂吧,不用多說(shuō)了....
學(xué)習(xí)筆記而已![@more@]
總結(jié)
以上是生活随笔為你收集整理的zhs16gbk对应mysql_数据库的编码浅谈(ZHS16GBK与US7ASCII)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何理解MotionEvent对象
- 下一篇: java启动监听器报错_JAVA通过JD