作者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