產生 ufeff 問題的原因及解決辦法

2021-09-20 03:27:17 字數 840 閱讀 9518

今天遇到以下問題:

name = 

with open('唐詩宋詞.txt', 'r', encoding='utf-8') as f:

for i in f:

fen = i.split(':')

print(fen[0], fen[1])

if fen[0].strip() == '詩名':

print(name)

結果為:

詩名 賊退示官吏並序

這是為什麼呢?後來發現:

print(fen)
結果為:

['\ufeff詩名', '賊退示官吏並序\n']
\ufeff 這是哪來的呢?網上搜尋後發現原來是文字儲存時包含了bom(byte order mark,位元組順序標記,出現在文字檔案頭部,unicode編碼標準中用於標識檔案是採用哪種格式的編碼)導致的,解決方法是使用 utf-8-sig 編碼

name = 

with open('唐詩宋詞.txt', 'r', encoding='utf-8-sig') as f:

for i in f:

fen = i.split(':')

print(fen)

if fen[0].strip() == '詩名':

print(name)

結果為:

['詩名', '賊退示官吏並序\n']

['賊退示官吏並序']

close wait狀態的產生原因及解決

最近需要上線的邏輯server由於需要與大量的後台server互動,今天突然發現有大量的close wait產生,於是仔細研究了一下 首先我們知道,如果我們的伺服器程式處於close wait狀態的話,說明套接字是被動關閉的!因為如果是client端主動斷掉當前連線的話,那麼雙方關閉這個tcp連線共...

close wait狀態的產生原因及解決

最近測試環境server由於需要與大量的後台server互動,今天突然發現有大量的close wait產生,於是仔細研究了一下 如果我們的伺服器程式處於close wait狀態的話,說明套接字是被動關閉的!因為如果是client端主動斷掉當前連線的話,那麼雙方關閉這個tcp連線共需要四個packet...

close wait狀態的產生原因及解決

最近需要上線的邏輯server由於需要與大量的後台server互動,今天突然發現有大量的close wait產生,於是仔細研究了一下 首先我們知道,如果我們的伺服器程式處於close wait狀態的話,說明套接字是被動關閉的!因為如果是client端主動斷掉當前連線的話,那麼雙方關閉這個tcp連線共...