RESTベースのサービスをテストしており、入力の1つがテキスト文字列です。だから、私はPythonコードからランダムなUnicode文字列を送信しています。これまで私が送ったユニコード文字列はASCIIの範囲にあったので、すべてが機能しました。ランダムなユニコード文字列を取得する方法
今、私はASCII範囲を超えて文字を送信しようとしていますが、エンコードエラーが発生しています。ここに私のコードです。私はこのlinkを通り過ぎていて、それでも私の頭を包み込むことはできません。
# coding=utf-8
import os, random, string
import json
junk_len = 512
junk = (("%%0%dX" % junk_len) % random.getrandbits(junk_len * 8))
for i in xrange(1,5):
if(len(junk) % 8 == 0):
print u'decoding to hex'
message = junk.decode("hex")
print 'Hex chars %s' %message
print u' '.join(message.encode("utf-8").strip())
最初の行は問題なく印刷されますが、エンコードすることなくRESTサービスに送信することはできません。したがって、私がutf-8にそれをエンコードしようとしている2行目。これは、次のメッセージで失敗するコード行です。
UnicodeDecodeError: 'ascii' codec can't decode byte 0x81 in position 7: ordinal not in range(128)
これは私のランダムな文字列生成を置き換えました。それは魅力のように働く。ありがとうございました。 – abhi