2015-09-08 39 views
0

在Java編程方面有一些經驗,我開始學習Python。與Java相比,在Python中使用Unicode字符的問題非常快,這讓我非常擔憂。只要文件編碼和代碼本身編寫的程序一起使用UTF-8編碼,使用Java編碼,就可以工作了。 Python中不是這樣。我更喜歡在NetBeans中編寫代碼,但如果使用NotePad,則會發生同樣的情況。編碼:Java&Python

鏈接是JavaPython的截圖顯示問題的對比。哪裏不對?什麼與設置?代碼本身? NetBeans的Python支持?也許Python與Unicode字符串的整體兼容性?

回答

0

@eryksun的評論有solved the issue。爲了使Python在Windows以及NetBeans中完全支持Unicode,必須添加環境變量PYTHONIOENCODING=UTF-8。 由於Python中完全支持Unicode的時間並不像Java中那樣長,所以最終用戶仍然需要一些完全支持Python中國際化的工作,這是可以理解的。

0

您的圖像顯示您正在使用Python 3.4.3,這應該不會導致unicode問題。如何在使用記事本時運行它?

嘗試直接調用python代碼,讓我知道發生了什麼。你甚至不需要頂上的# -*- coding: utf-8 -*-位。

如果你不能直接調用它,看看你是否可以直接在Python中運行該行。 (Ctrl + R,打開終端輸入cmd然後輸入,然後輸入python並輸入終端。)

如果它適合你,那麼它可能是一個NetBeans設置問題。

通常對Python程序員推薦的IDE是Spyder,它對科學計算有好處。其他人在Eclipse或PyCharm中執行此操作。

+1

如圖所示,問題是'sys.stdout.encoding'設置爲''cp1251''(西里爾語),它不能編碼拉丁字符「ä」'。 Netbeans可能運行Python,並將'stdout'設置爲一個管道,Python默認使用Windows ANSI代碼頁。你可以通過設置環境變量'PYTHONIOENCODING = utf-8'來覆蓋它。在IDE之外,Windows控制檯中的UTF-8(代碼頁65001)在conhost.exe和CRT中都存在缺陷,所以我建議通過[win-unicode-console](https:/ /github.com/Drekin/win-unicode-console)。 – eryksun

+0

非常感謝!它現在正在全面運作。如果你想爲此獲得信貸,請將其作爲答案發布,我會接受它。 –