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軍
請注意:在ASC碼和十六進制碼中,185對應B9,249對應F9,65對應41,190對應BE,252對應FC
而編碼時,185,249兩個字節構成"郭"字,65一個字節構成"A"字,190,252兩個字節構成"軍"字.
本機測試環境中編碼是US7ASCII,是一個字節為一個存儲單位,對于中文字的處理方式是用兩個存儲單位連接起來形成中文字的.
若編碼為ZHS16GBK,則是二個字節為一個存儲單位,其差異性可體現在查ASCII碼值上邊.
如先在US7ASCII的環境中查"郭"的ASCII碼:
SQL> select ascii('郭') from dual;
185
象前邊已經介紹過的,在此種編碼中是用ASCII碼值為185,249的兩個字節拼起來形成"郭"字的,故按ASCII( )函數的原理,會取第一個字節的ASCII值.
在US7ASCII的環境中查"郭"的ASCII碼:
SQL> select ascii('郭') from dual;
47609
因為它是用兩個字節存儲的,也可以這樣計算
SQL> select 185*256+249 from dual;
47609
為什么這樣算,相信大家都懂吧,不用多說了....
學習筆記而已![@more@]
總結
以上是生活随笔為你收集整理的zhs16gbk对应mysql_数据库的编码浅谈(ZHS16GBK与US7ASCII)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何理解MotionEvent对象
- 下一篇: MegaCli使用手册