1. 程式人生 > >python讀取檔案後詭異的\ufeff

python讀取檔案後詭異的\ufeff

1.python環境

    python:win32 3.6.3版本

    執行環境介紹:在python讀取txt文件的時候在首行會出現詭異的\ufeff,對比字串就會對比失敗

2.除錯程式碼

    不多說上程式碼,要兌取的txt文件內容如下:    

測試ufeff問題
    python測試程式碼如下:
#coding=utf-8

filePath = r'C:\Users\xzp\Desktop\python\userConfig.txt'
s='測試ufeff問題'
with open(filePath,'r',encoding='utf-8') as dic:
##    dic.read()
    for item in dic:
        if item.strip() == s:
            print('ok')
        print(item)
print(s)
    上面程式的輸出結果如下:
測試ufeff問題
測試ufeff問題

    上面的輸入沒有ok。於是我進入了debugger看看那個變數的情況

    除錯過後發現如下結果:


這個問題出現了!!!!!

3.解決方案:

#coding=utf-8

filePath = r'C:\Users\xzp\Desktop\python\userConfig.txt'
s='測試ufeff問題'
with open(filePath,'r',encoding='utf-8') as dic:
##    dic.read()
    for item in dic:
        if item.encode('utf-8').decode('utf-8-sig').strip() == s:
            print('ok')
        print(item)
print(s)

程式的輸出結果:

ok
測試ufeff問題
測試ufeff問題
問題解決,具體原理去百度下吧!