我的國家語言是波蘭語。如何將帶有國家字符的Linux Python 3.4代碼轉換爲Windows中的可執行代碼
我已經在Python 3.4中編寫了我在linux上編寫的程序。該計劃主要針對文本,波蘭語文本。所以當然,變量名沒有任何特殊字符,但有時我會在其中放入一些帶波蘭字符的字符串,用戶將從鍵盤輸入一些帶有波蘭字符的字符串,並從文件中讀取我的程序,其中我用波蘭字符。
在Linux上一切正常。我沒有考慮編碼,它只是工作。但是現在我想讓它在Windows上工作。你能幫助我理解,我該怎麼做才能做出這種轉變?
或者,也許一些解決方法 - 我只需要有Windows可執行文件。完美的方式,這將是「Pyinstaller」,但它只適用於Python 2.7,而不是3.4。這就是爲什麼我想讓它在Windows上工作,並且在VirtualBox中用py2exe編譯成可執行形式。但是也許somone在Linux中知道這個方法,但是沒有這個編碼問題,它會很棒。
如果不是,我回到我的問題。我試圖將gedit中的python腳本轉換爲ISO或CP1250或1252,我在文件標題中寫了我正在使用的編碼,它實際上工作了一點,現在我的Windows錯誤將我轉換成文本形式的文件,一些數據,所以我也轉換了它們......但它不起作用。
所以我決定,沒有更多的時間盲目試用,我需要尋求幫助,我需要了解在Windows上使用哪種編碼,在Linux上,將一個轉換爲另一個的最佳方式是什麼,以及如何讓程序以正確的方式讀取字符。
最好的辦法是 - 我猜 - 沒有改變編碼的任何東西,但只是讓Windows Python瞭解我使用的是什麼編碼。那可能嗎?
對於我的問題的完整答案會很棒,但任何能夠指引我正確方向的東西也會對我有所幫助。
好的。我不確定,如果我理解你在評論中的回答,但是嘗試通過郵件爲自己發送文本,在virtualbox中將其應用於記事本並保存爲utf_8。仍然得到這個消息:
C:\Users\python\Documents>py pytania.py
Traceback (most recent call last):
File "pytania.py", line 864, in <module>
start_probny()
File "pytania.py", line 850, in start_probny
utworzenie_danych()
File "pytania.py", line 740, in utworzenie_danych
utworzenie_pytania_piwo('a')
File "pytania.py", line 367, in utworzenie_pytania_piwo
for line in f: # Czytam po jednej linii
File "C:\Python34\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 1134: cha
racter maps to <undefined>
的無論在哪個平臺上運行,Python 3.x的默認源編碼[是UTF-8](https://www.python.org/dev/peps/pep-3120/),因此不需要轉換任何東西在所有。如果你的代碼在Windows和Linux上運行不同,你的問題就在別處。 –