看板 Python 關於我們 聯絡資訊
假設我有一個檔案叫test.txt,內容只有一行字: 中文 然後我用如下的碼讀入(省略之前之後的各個動作) string = infile.readline().decode('utf-8') 這樣得到的變數跟以下我手動給初值有何不同? string = u'中文' 我用sunburnt把資料加入solr時兩者都可以加入 但只有後者得到的結果可以下中文關鍵字搜尋到 請問一下各位先進我應該如何修改呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.147.239.158
kdjf:最後的\n ? 10/28 16:58
buganini:decode()出來跟u''出來的都是internal encoding的東西 10/28 17:06
buganini:也就是所謂unicode type 其他encode()過或是''的 10/28 17:07
buganini:都是str type 視同byte array 一個中文字在 10/28 17:07
buganini:unicode type是一個字 在str type是3個byte 10/28 17:07
buganini:至於一樓說的東西,在decode()後面加.strip()試試 10/28 17:08
ykjiang:起先確認你的「中文」編碼真的是 utf-8 吧 10/28 21:07
buganini:對了 如果你是用記事本存的txt 還有bom的問題 10/28 22:34
buganini:建議用print repr(string)出來看一下 10/28 22:34