Pythonで引数をエンコード、保存、デコードしようとしていますが、途中で迷子になっています。これが私のステップです:
1)私はグーグルツールキットを使用gtm_stringByEscapingForURLArgument
して、HTTP引数に渡すためにNSStringを適切に変換します。
2)私のサーバー(python)では、これらの文字列引数を次のように保存します(u'1234567890-/:;()$&@".,?!\'[]{}#%^*+=_\\|~<>\u20ac\xa3\xa5\u2022.,?!\''
これらは、「123」ビューと「#+ =」ビューのiphoneキーパッドの標準キーであり、そこにある文字\u
と\x
文字であることに注意してください)ポンド、円などのいくつかの金銭的な接頭辞)
3)私はurllib.quote(myString,'')
その保存された値を呼び出します。おそらく、クライアントへの転送のためにそれらを%エスケープして、クライアントがそれらをパーセントでエスケープできないようにします。
その結果、%エスケープの結果をログに記録しようとすると、例外が発生します。httpを送信するために適切に変換するために、\ uおよび\x形式で保存された値に適用する必要がある、私が見落としている重要なステップはありますか?
更新:以下の答えとしてマークされた提案は私のために働いた。ただし、以下のコメントに対応するために、いくつかの更新を提供しています。
私が受け取った例外は、の問題を引用しました\u20ac
。それが文字列の最初のUnicode文字であったという事実ではなく、それが特に問題であったかどうかはわかりません。
その\u20ac
文字は「ユーロ」記号のUnicodeです。基本的に、urllib2quote
メソッドを使用しない限り、問題が発生することがわかりました。