私が書いたudpクライアントを使って遊んでいるPythonソケットモジュールを使っています。私は16進リテラルをどのように処理するのが嫌いです。例:Python 2.7:16進数から文字列への自動デコードを防ぐ方法
>>> querydns = '\xb9\x1b\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03\x77\x77\x77\x06\x67\x6f\x6f\x67\x6c\x65\x03\x63\x6f\x6d\x00\x00\x01\x00\x01'
>>> querydns
'\xb9\x1b\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03www\x06google\x03com\x00\x00\x01\x00\x01'
>>> replydata
'\xb9\x1b\x81\x80\x00\x01\x00\x06\x00\x00\x00\x00\x03www\x06google\x03com\x00\x00\x01\x00\x01\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\xd4\x00\[email protected]\xe9\xb0j\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\xd4\x00\[email protected]\xe9\xb0i\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\xd4\x00\[email protected]\xe9\xb0\x93\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\xd4\x00\[email protected]\xe9\xb0g\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\xd4\x00\[email protected]\xe9\xb0h\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\xd4\x00\[email protected]\xe9\xb0c'
16進数の一部を自動的に文字にデコードする方法に注意してください。私は16進値のみを扱いたい、@やwwwは扱っていません。この自動デコードを止める簡単な方法はありますか?
私は答えを置くが、より多くの私はそれについて考える私はあなたが進は私に多くの意味を作るdoesntのように滞在するためにそれらを強制するために、私たちに人間を意味している印刷可能な文字を変更したいと思う理由を理解しない –
短い精度:インタプリタで文字列を出力するときにのみ呼び出される "自動デコード"が発生します。あるいは、 'repr(querydns)'を使うとき。また、実際には逆の動作をします。安全でない文字を '\ xXX '形式にエンコードするので、文字列を再現するために表示をコピーペーストすることができます。 – spectras