0

奇妙なエンコーディング エラーだと思われるものに直面していますが、本当に困惑しています。基本的に、ユニコード文字列を画像としてファイルに書き込もうとしていますが、文字列表現はうまく印刷されます。

ìԉcïԁiԁúлt cúɭpâ ρáncéttá, ëɑ ëɭìt haϻ offícìà còлѕêɋûät. Sunt ԁësërúлt

しかし、文字列を関連する場所に書き出そうとすると、標準のASCIIエンコーディングエラーが発生します。

UnicodeEncodeError: 'ascii' codec can't encode characters 0-3: ordinal not in range 128

ソースファイルのエンコーディングを設定して、システム変数が ascii に設定されていないことを確認し、次の方法でファイルに直接出力しようとしました。

python script.py > output.jpg

そして、どれも効果がないようです。単純なエンコーディングの問題を解決できないのは少しばかげているように感じますがascii、この時点でコーデックがどこから来ているのかについてはまったく手がかりがありません.

関連コード:

def random_image(**kwargs):
    image_array = numpy.random.rand(kwargs["dims"][0], kwargs["dims"][1], 3)*255
    image = Image.fromarray(image_array.astype('uint8')).convert('RGBA')
    format = kwargs.get("format", "JPEG")
    output = StringIO.StringIO()
    image.save(output, format=format)
    content = output.getvalue()
    output.close()
    content = [str(ord(char)) for char in content]
    return content
4

1 に答える 1