之前没怎么用python处理中文数据,今天遇到一个问题,记一下。
如果
x = u'中文文本'
那么x是unicode字符串,
x[0] = '中'
如果x是从文本读的,比如
x = codecs.open("test.txt").readlines()[0]
那么x不是unicode字符串,
x[0:3] = '中'
也就是3个字符才是一个中文单字
我们可以用isinstance(x,unicode)来检查x是否是unicode,如果不是,可以用y=unicode(x, 'utf8')转成unicode,字符集根据实际test.txt的编码进行调整。
转换以后 y[0] = '中'