今天遇到以下問題:
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連線共...