Python ASCII encode error

折騰許久的SmartMachine上的預設字碼問題
終於在這各寧靜的夜裡得到解決...

之前在處理平台上中文字時候,可以正常顯示在standard output
但是在將standard output導向檔案時候卻一直顯示UnicodeEncodeError

# python tt.py > /tmp/test.txt
Traceback (most recent call last):
  File "tt.py", line 84, in <module>
    jsonobj['email_address'],""\
UnicodeEncodeError: 'ascii' codec can't encode characters in position 221-226: ordinal not in range(128)

同時我也試過另開新檔案儲存的方式
fout = open('/tmp/insert.sql','w')
fout.write(.....)
但是得到同樣的結果

原來平台上的預設編碼影響還真大....
最後解法為:
str.encode('utf8')
透過encode('utf8')之後
不論用print再導到file
或是fout.write都可正常執行

這個網誌中的熱門文章

Bash判斷參數是否存在

使用 minikube 輕鬆上手 kubernetes