編碼的一些問題

2021-06-05 00:15:27 字數 1383 閱讀 3142

utf-8  是1byte~4byte的變換,漢字utf-8儲存的,乙個漢字佔3byte

gbk     漢字gbk儲存的,乙個漢字佔2byte

utf-16be 漢字、字母都是2byte

utf8和utf16都是uincode

"中國abc"分別對應的編碼,按順序gbk,utf-8,utf-16be

11010110 11010000

10111001 11111010 01000001 01000010 01000011

注釋:11010110 11010000   中

10111001 11111010   國

01000001                       a

01000010                       b

01000011                       c

11100100 10111000 10101101 11100101 10011011 10111101 01000001 01000010 01000011

注釋:11100100 10111000 10101101    中

11100101 10011011 10111101    國

01000001                                            a

01000010                                            b

01000011                                            c

01001110 00101101 01010110 11111101 00000000 01000001 00000000 01000010 00000000 01000011

注釋:01001110 00101101   中

01010110 11111101   國

00000000 01000001   a

00000000 01000010   b

00000000 01000011   c

同樣:utf-8和utf-16be是可以轉換的

11100100 101110

00 10101101 11100101 10011011 10111101 01000001 01000010 01000011

01001110

00101101 01010110 11111101 00000000 01000001 00000000 01000010 00000000 01000011

如果乙個漢字是utf-8的,是3byte。去掉第乙個byte的前4位1110

第二個byte的前2位10

第三個byte的前2位10

按照顏色對比。下面的同理。

關於中文編碼的一些問題

在檔案的第一行加入如下 能夠解決目前的問題。coding utf 8 具體內容待完善 python核心庫的open函式不支援吸入unicode,使用codecs模組可以解決這個問題。使用方法如下 import codecs f codecs.open filename w utf 8 普通寫入等操作...

String 一些問題

前言 等號 對於基本型別,比較的是值,對於引用型別,比較的是記憶體位址。1.在物件池中建立,如果常量池中已經存在則返回常量池中已經有的。private static void test1 結果 true 2.乙個在string pool中,乙個在堆中。private static void test...

C 一些問題

1 if else語句和switch case語句的效率分析對比 switch效率高。switch的效率與分支數無關,當只有分支比較少的時候,if效率比switch高,因為switch有跳轉表。分支比較多,那當然是switch 根據大量的實際程式測試 不考慮不同的編譯器優化程度差異,假設都是最好的優...