刚刚突然查到资料~
发现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
1F:→ mars90226:unicode是概念,utf-8才是实际的编码方式 03/05 18:31
2F:→ mars90226:还有utf-16,只是跟我们亚洲人比较无关 03/05 18:31
3F:→ tacosung:对~ 没错~ 只是我现在很苦恼只有当txt档案储存成 03/05 18:42
4F:→ tacosung:'unicode'才会断词正常, 现在我不知道txt里面的'unicode' 03/05 18:44
5F:→ tacosung:到底是指哪一种unicode编码(语料都是中文的)... 03/05 18:44
6F:→ tacosung:我试过用python读进档案再decode('utf-8')就可以读取正常 03/05 18:45
※ 编辑: tacosung 来自: 115.43.113.85 (03/05 19:17)
7F:→ mars90226:我想应该是utf-8,这个可能是根据不同windows语言设定的 03/06 14:16
8F:→ mars90226:应该说是不同语言版本的Windows 03/06 14:16