python 漢字編碼問題

2022-03-15 10:21:43 字數 549 閱讀 4893

問題描述:我要判斷的兩個字串是否相等(『區站號』==『區站號』),第乙個值是我從txt檔案匯入的資料,第二個值是我自己定義的並使用decode('utf-8')得到的,如果你用print函式列印這兩個變數,則都是『區站號',但是if語句判斷,這兩個值是不相等的。用直接顯示的方式,u'\u533a\u7ad9\u53f7' 和 u'\ufeff\u533a\u7ad9\u53f7'的區別。可以使用下述方法解決。

引用:原來,某些軟體,如notepad,在儲存乙個以utf-8編碼的檔案時,會在檔案開始的地方插入三個不可見的字元(0xef 0xbb 0xbf,即bom)。

因此我們在讀取時需要自己去掉這些字元,python中的codecs module定義了這個常量:

# coding=gbk

import codecs

data = open("test.txt").read()

if data[:3] == codecs.bom_utf8:

data = data[3:]

print data.decode("utf-8")

結果:abc中文和

漢字編碼問題

漢字編碼問題 由於常常要和漢字處理打交道,因此,我常常受到漢字編碼問題的困擾。在不斷的打擊與堅持中,也積累了一點漢字編碼方面的經驗,想和大家一起分享。一 漢字編碼的種類 漢字編碼中現在主要用到的有三類,包括gbk,gb2312和big5。1 gb2312又稱國標碼,由國家標準總局發布,1981年5月...

漢字編碼問題

漢字編碼問題 由於常常要和漢字處理打交道,因此,我常常受到漢字編碼問題的困擾。在不斷的打擊與堅持中,也積累了一點漢字編碼方面的經驗,想和大家一起分享。一 漢字編碼的種類 漢字編碼中現在主要用到的有三類,包括gbk,gb2312和big5。1 gb2312又稱國標碼,由國家標準總局發布,1981年5月...

漢字編碼問題

由於常常要和漢字處理打交道,因此,我常常受到漢字編碼問題的困擾。在不斷的打擊與堅持中,也積累了一點漢字編碼方面的經驗,想和大家一起分享。一 漢字編碼的種類 漢字編碼中現在主要用到的有三類,包括gbk,gb2312和big5。1 gb2312又稱國標碼,由國家標準總局發布,1981年5 月1日實施,通...