我剛剛開始學習Python編碼,我有一個簡單的Python程序,返回Cześć <input>
,其中<input>
是用戶可以輸入到CMD中作爲此Python程序參數的名稱。如果沒有輸入,它會返回Cześć Świat
。它工作正常,但當我例如輸入名稱Łukasz
它剝離從Ł
罷工和程序返回Cześć Lukasz
而不是正確的Cześć Łukasz
。如何將波蘭字符作爲Python參數輸入到CMD中?
在Windows CMD中,我使用CD命令轉到包含Python程序的文件夾,並在那裏使用語句hello.py Łukasz
執行Python程序。
我的劇本是這樣的(它最初是從谷歌的Python的練習(source)和我一起例如「cześć」編輯它,使之成爲與Python 2.7版本的Unicode字符工作,也取代「你好」):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
# Define a main() function that prints a little greeting.
def main():
# Get the name from the command line, using 'World' as a fallback.
if len(sys.argv) >= 2:
name = sys.argv[1].decode('cp1252')
else:
name = u'Świat'
str = u'Cześć '+name
print str.encode('utf-8')
# This is the standard boilerplate that calls the main() function.
if __name__ == '__main__':
main()
本來我utf-8
解碼sys.argv[1]
,但不知何故,當我用字母Óó
它會拋出一個醜陋異常(見this SO answer)。使用utf-8
或cp1252
導致波蘭語字母(例如ĄĆĘĄĆĘŃŹ)被刪除其口音,除了字母Óó
似乎在使用cp1252
時保持其口音,因爲使用該字母utf-8
導致了前面提到的異常。
所以我的問題是,如何檢索字符串完整與來自CMD的口音用於我的Python程序?
我不接受提示刪除/忽略口音的答案!
哇... Python 3甚至不需要'''''一些字符串''和解碼/編碼了,它只是接受我正在使用變音符!謝謝 :) – Teysz