看板 Python 關於我們 聯絡資訊
剛剛突然查到資料~ 發現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
mars90226:unicode是概念,utf-8才是實際的編碼方式 03/05 18:31
mars90226:還有utf-16,只是跟我們亞洲人比較無關 03/05 18:31
tacosung:對~ 沒錯~ 只是我現在很苦惱只有當txt檔案儲存成 03/05 18:42
tacosung:'unicode'才會斷詞正常, 現在我不知道txt裡面的'unicode' 03/05 18:44
tacosung:到底是指哪一種unicode編碼(語料都是中文的)... 03/05 18:44
tacosung:我試過用python讀進檔案再decode('utf-8')就可以讀取正常 03/05 18:45
※ 編輯: tacosung 來自: 115.43.113.85 (03/05 19:17)
mars90226:我想應該是utf-8,這個可能是根據不同windows語言設定的 03/06 14:16
mars90226:應該說是不同語言版本的Windows 03/06 14:16