私は、ローカルファイルシステムに格納された変数を取得し、それらを変数に格納するプログラムを持っています。次に、Web API呼び出しで使用するためにそれらをURLエンコードしようとします。私はいくつかの私の呼び出しでエラーが発生していることに気付きましたが、調査の結果、エンコーディングが期待どおりに機能していないように見えました。これらの2つの文字列演算で異なる出力が生成されるのはなぜですか?
この文字列エンコーディングは正しい結果を生成します。
newstring = urllib.parse.quote(u"Müller".encode('utf8'))
print(newstring)
出力
M%C3%83%C2%BCller
しかし、このコードは
string2 = "Müller"
newstring2 = urllib.parse.quote(string2.encode('utf8'))
print(string2)
出力
Müller
違いはここにあるどのような任意のアイデア正しい出力を生成し、どのように私はしません。それを修正することができます秒最初のコードで正確な結果が得られますか?
私はPython 3のすべての文字列がデフォルトでユニコードであると思っていました。あなたはまだ 'u'Müller ''に 'u'が必要ですか? –
'2.x' /' 3.x'コードベースのメンテナンスを簡素化する必要があるときには、@RocketHazmat 'u'''が一般的に使用されます(' 3.3'で追加されました)。 OPがそれを目指していない場合、「u」は冗長です。 –