C では、次のことができますprintf("%c%c",-108,109);
。しかし、Pythonでそれを行う方法は?
args[2]='Test%c%cFile'% (-108,-109)
OverflowError: unsigned byte integer is less than minimum
コメントから、ASCII 以外の文字を文字列に入れたいようです。Python では、負の整数を含むハックは必要ありません。Python には、夢にまで見たあらゆる文字を保持するための完全に優れた Unicode 文字列があります。コード チャート (この\uxxxx
ような) を使用して文字のコード ポイントを見つけ、構文を使用してそれらを文字列に挿入します。
編集:あなたは後にあるようですU+9493
CJK UNIFIED IDEOGRAPH-9493
。これは、を使用して文字列に挿入できます
str = u"\u9493"
(ありがとう@KeithThompson!)
本当の答えは、C コードの非標準的な動作に依存してきたということです (言語弁護士の 1 人が突っ込んで、それが本当に未定義かどうかを教えてくれます)。
間違った C コードを複製しようとするのではなく、Python で非 ASCII のマルチバイト文字セットを適切にサポートする方法を調べる必要があります。
アプリの正しい「i18n」に役立つリソースはたくさんあります。