2010-08-12 38 views

回答

4

的NetBeans的控制檯顯然ISN」 t正確設置以處理打印非ASCII unicode字符串。

一般來說,您應該避免先打印unicode字符串而不明確編碼它們(例如u_str.encode(some_codec)。

在特定情況下,你可能只逃脫:

print u'{0}'.format(s).encode('utf-8') 
+0

這裏的結果:'A°Celsius'。這可能是一個NetBeans控制檯問題。直接在控制檯上執行此操作(或直接寫入文件)不會產生額外的''。 – Kit 2010-08-12 09:03:52

+1

然後,NetBeans不希望其輸出以utf-8編碼。根據你在那裏得到的結果,它似乎想要ISO-8859-1(你可以通過編碼來看到正確的結果)。這可能是可配置的,儘管我自己並不瞭解NetBeans。 – habnabit 2010-08-12 09:07:34

+1

如'some_file.write(u'{0}'格式)寫入文件'會導致相同的錯誤,除非我也使用'.encode('utf-8')'。儘管如此,ISO-8859-1的編碼效果不錯。 – Kit 2010-08-12 13:51:56

0

你說你想編碼unicode字符串。假設你想UTF-8編碼的使用:

s.encode( 'UTF-8')

相關問題