私はPythonでコーディングを学び始めました。Cześć <input>
を返すシンプルなPythonプログラムがあります。<input>
は、このPythonプログラムのパラメータとしてユーザーがCMDに入力できる名前です。入力がない場合は、Cześć Świat
を返します。それはうまく動作しますが、例えばŁukasz
という名前を入力すると、Ł
からストライキが取り除かれ、プログラムは正しいCześć Łukasz
の代わりにCześć Lukasz
を返します。ポーランド文字をPythonパラメータとしてCMDに入力する方法は?
WindowsのCMDでは、CDコマンドを使用してPythonプログラムが格納されているフォルダに移動しました。そこで、文を使用してPythonプログラムを実行します:hello.py Łukasz
。
私のスクリプトは、この(それがGoogleのPythonの演習(source)出身で、私はそれがPythonのバージョン2.7とUnicode文字のために動作させるために、それを編集し、また置き換え「ハロー」例えば「cześć」が)のようになります。
#!/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
のいずれかを使用すると、utf-8
でその文字を使用すると前述の例外が発生したため、を使用するとアクセントを維持するような文字Óó
を除いて、ポーランド語の文字(アクセント記号など)が取り除かれます。
私の質問は、どのように私のPythonプログラムで使用するようにCMDのアクセント記号をそのまま引き出すのですか?
アクセントを削除する/無視することをお勧めする回答は受け付けません!
うわー... Python 3は 'u'some string''とデコード/エンコードがもう必要なくても、それはちょうど私が発音区別記号を使っていることを受け入れるだけです!ありがとうございました :) – Teysz