作者kanako (我是香民)
看板Python
标题[问题] 有关utf-8字串的问题
时间Fri Oct 28 16:57:39 2011
假设我有一个档案叫test.txt,内容只有一行字:
中文
然後我用如下的码读入(省略之前之後的各个动作)
string = infile.readline().decode('utf-8')
这样得到的变数跟以下我手动给初值有何不同?
string = u'中文'
我用sunburnt把资料加入solr时两者都可以加入
但只有後者得到的结果可以下中文关键字搜寻到
请问一下各位先进我应该如何修改呢?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.147.239.158
1F:推 kdjf:最後的\n ? 10/28 16:58
2F:→ buganini:decode()出来跟u''出来的都是internal encoding的东西 10/28 17:06
3F:→ buganini:也就是所谓unicode type 其他encode()过或是''的 10/28 17:07
4F:→ buganini:都是str type 视同byte array 一个中文字在 10/28 17:07
5F:→ buganini:unicode type是一个字 在str type是3个byte 10/28 17:07
6F:→ buganini:至於一楼说的东西,在decode()後面加.strip()试试 10/28 17:08
7F:→ ykjiang:起先确认你的「中文」编码真的是 utf-8 吧 10/28 21:07
8F:→ buganini:对了 如果你是用记事本存的txt 还有bom的问题 10/28 22:34
9F:→ buganini:建议用print repr(string)出来看一下 10/28 22:34