我正在運行的是我所假設的一些奇怪的編碼錯誤,但它真的讓我莫名其妙。基本上我試圖寫一個unicode字符串作爲圖像的文件,並且字符串表示法打印正常。儘管打印完全正確,Python仍然無法寫入文件
ìԉ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
請包括您的代碼和完整的回溯。這是一個Unicode值還是一個字節字符串? –
@MartijnPieters這就是事實,這實際上是完整的追溯。除了完全依靠自身完美的印刷聲明之外,它幾乎沒有任何意義。 –
但是,無論如何,這對我們來說都是有趣且有用的信息。 –