[問題] txt檔案裡面unicode的儲存轉換

看板Python作者時間13年前 (2012/03/05 18:21), 編輯推噓0(008)
留言8則, 2人參與, 最新討論串1/1
剛剛突然查到資料~ 發現txt檔案裡面的"unicode" 基本上是 "utf-16"的意思 而且如果我的中文語料一開始如果是以utf-8存取, 要重新讓他以utf-16儲存的話, 會有少部分字變成亂碼 要先把檔案以ANSI儲存, 再重新用python寫入儲存成utf-16才會變成正常的 所以目前是解決這個小小的怪問題: 附上我的codes, 感謝有這個版!! import codecs import os import re cwd = 'ckip_trans' # raw data directory for i in os.listdir(cwd): file = codecs.open('ckip_trans_out/'+i,'w', encoding='utf-16') #output asbc = codecs.open('ckip_trans/'+i).read().decode('cp950') file.write(asbc) file.close() 謝謝~ 希望對之後的人有一些小幫助 作者: tacosung (taco) 看板: Python 標題: [問題] txt檔案裡面unicode的儲存轉換 時間: Mon Mar 5 18:21:06 2012 大家好~ 我目前手邊有一個單機版的斷詞系統, 每一筆語料都儲存在txt檔案裡面, 可是現在問題是... 那個txt檔案如果不是選擇'unicode'儲存的話, 送進去斷詞後, 都會變成亂碼! (即使是選擇以'utf-8'儲存, 回傳結果一樣是亂碼) 想問一下, 如果要用python寫一個script讓所有的txt檔案 儲存成txt裡面的 'unicode'模式, 要怎麼在encoding選擇? 因為encoding裡面沒有"unicode", 只有'utf-8','cp950'等等之類的... 先感謝回答, 這困擾我一陣子了 = = -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.43.113.85

03/05 18:31, , 1F
unicode是概念,utf-8才是實際的編碼方式
03/05 18:31, 1F

03/05 18:31, , 2F
還有utf-16,只是跟我們亞洲人比較無關
03/05 18:31, 2F

03/05 18:42, , 3F
對~ 沒錯~ 只是我現在很苦惱只有當txt檔案儲存成
03/05 18:42, 3F

03/05 18:44, , 4F
'unicode'才會斷詞正常, 現在我不知道txt裡面的'unicode'
03/05 18:44, 4F

03/05 18:44, , 5F
到底是指哪一種unicode編碼(語料都是中文的)...
03/05 18:44, 5F

03/05 18:45, , 6F
我試過用python讀進檔案再decode('utf-8')就可以讀取正常
03/05 18:45, 6F
※ 編輯: tacosung 來自: 115.43.113.85 (03/05 19:17)

03/06 14:16, , 7F
我想應該是utf-8,這個可能是根據不同windows語言設定的
03/06 14:16, 7F

03/06 14:16, , 8F
應該說是不同語言版本的Windows
03/06 14:16, 8F
文章代碼(AID): #1FL9ELMx (Python)
文章代碼(AID): #1FL9ELMx (Python)