我遇到了我认为是一些奇怪的编码错误,但这真的让我感到困惑。基本上我正在尝试将 unicode 字符串作为图像写入文件,并且字符串表示形式打印得很好。
ìԉ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