2011年5月15日

印出UTF8字串



Python3 在字串上預設的編碼是UTF8,但print卻不是
預設做法是轉成sys.stdout.encoding所設定的編碼再印出
當sys.stdout.encoding的編碼沒有你要印的字時,就會出現
'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
的錯誤


這時候可以
import sy import codecs sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)
來強迫使用UTF-8印出字串

2 則留言:

  1. 不是很好的样子。
    CGIHTTPRequestHandler 不能正常工作。

    回覆刪除
  2. 我試了好多方法才輸出成功
    若有更好的方法,還麻煩提供

    回覆刪除