-3

C では、次のことができますprintf("%c%c",-108,109);。しかし、Pythonでそれを行う方法は?

args[2]='Test%c%cFile'% (-108,-109)
OverflowError: unsigned byte integer is less than minimum
4

2 に答える 2

1

コメントから、ASCII 以外の文字を文字列に入れたいようです。Python では、負の整数を含むハックは必要ありません。Python には、夢にまで見たあらゆる文字を保持するための完全に優れた Unicode 文字列があります。コード チャート (この\uxxxxような) を使用して文字のコード ポイントを見つけ、構文を使用してそれらを文字列に挿入します。

編集:あなたは後にあるようですU+9493 CJK UNIFIED IDEOGRAPH-9493。これは、を使用して文字列に挿入できます

str = u"\u9493"

(ありがとう@KeithThompson!)

于 2013-07-29T03:05:33.957 に答える
0

本当の答えは、C コードの非標準的な動作に依存してきたということです (言語弁護士の 1 人が突っ込んで、それが本当に未定義かどうかを教えてくれます)。

間違った C コードを複製しようとするのではなく、Python で非 ASCII のマルチバイト文字セットを適切にサポートする方法を調べる必要があります。

アプリの正しい「i18n」に役立つリソースはたくさんあります。

于 2013-07-29T02:58:17.030 に答える