2014-01-14 252 views
1

當我試圖在Python中打印所有ASCII字符時只有127個正在打印,並且在127之後出現輸出錯誤。我無法理解那個錯誤是什麼意思。UnicodeEncodeError:'charmap'編解碼器無法編碼字符(在Python 3.3中)

例子:

t = list(range(0, 256)) 
for x in t: 
    print(str(x) + ". " + chr(x)) 

錯誤:

Traceback (most recent call last): 
    File "D:\Study\Pedia\Python Book\6. Functions\2. Built-in functions\ord_chr.py", line 6, in <module> 
    print(str(x) + ". " + str(chr(x))) 
    File "C:\Python33\lib\encodings\cp1252.py", line 19, in encode 
    return codecs.charmap_encode(input,self.errors,encoding_table)[0] 
UnicodeEncodeError: 'charmap' codec can't encode character '\x80' in position 5: character maps to <undefined> 

注:我不能告訴你完整的輸出,因爲我不能完整的原始輸出由崇高輸出控制檯複製。不知道爲什麼它不能被複制的真正原因。


enter image description here

+0

@Wooble編輯。 –

回答

1

ASCII包括用於128個字符(0127)定義。

\x80(128)不包括在那裏。

+0

但是ASCII圖表有256個字符。也許我錯了。 –

+0

@YousufMemon,哪個ASCII圖? – falsetru

+0

@YousufMemon:你從哪裏找到這張圖表?無論它顯示的是不是ASCII。 – geoffspear

1

當我在Windows,Python 2.7上嘗試你的代碼時,它毫無例外地工作。我不得不採取截圖作爲複製文本,只是忽略了這些擴展ASCII字符。

part 1 part 2 part 3

相關問題