我试图用Python打印笑脸:☺
它在交互式shell(在cmd.exe中)
中没有任何问题Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AM
D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("☺")
☺
但如果我从文件中尝试相同的操作,我会收到此错误:
Traceback (most recent call last):
File "main.py", line 8, in <module>
print("\u263a")
File "C:\dev\lang\Python34\lib\encodings\cp850.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u263a' in position
0: character maps to <undefined>
Python-File是UTF-8编码的。
即使我的问题还没有真正的答案,也值得阅读问题下的评论。我还使用cmd.exe的默认光栅字体(在Windows 10上测试)创建了所有可打印字符的列表。要打印char,只需使用chr()
功能。例如chr(14)
为您提供♫
0 [space]
1 ☺
2 ☻
3 ♥
4 ♦
5 ♣
6 ♠
7 [nothing]
8 [backspace, removes char before]
9 [tabulator]
10 [newline]
11 ♂
12 ♀
13 [takes part after chr(13) and replaces begin of string with it]
14 ♫
15 ☼
16 ►
17 ◄
18 ↕
19 ‼
20 ¶
21 §
22 ▬
23 ↨
24 ↑
25 ↓
26 →
27 ←
28 ∟
29 ↔
30 ▲
31 ▼
32 [space]
33 !
34 "
35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59 ;
60 <
61 =
62 >
63 ?
64 @
65 A
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
91 [
92 \
93 ]
94 ^
95 _
96 `
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n
111 o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z
123 {
124 |
125 }
126 ~
127 ⌂
160 [space]
161 ¡
162 ¢
163 £
164 ¤
165 ¥
166 ¦
167 §
168 ¨
169 ©
170 ª
171 «
172 ¬
173 [shorter -, can't be displayed outside of console]
174 ®
175 ¯
176 °
177 ±
178 ²
179 ³
180 ´
181 µ
182 ¶
183 ·
184 ¸
185 ¹
186 º
187 »
188 ¼
189 ½
190 ¾
191 ¿
192 À
193 Á
194 Â
195 Ã
196 Ä
197 Å
198 Æ
199 Ç
200 È
201 É
202 Ê
203 Ë
204 Ì
205 Í
206 Î
207 Ï
208 Ð
209 Ñ
210 Ò
211 Ó
212 Ô
213 Õ
214 Ö
215 ×
216 Ø
217 Ù
218 Ú
219 Û
220 Ü
221 Ý
222 Þ
223 ß
224 à
225 á
226 â
227 ã
228 ä
229 å
230 æ
231 ç
232 è
233 é
234 ê
235 ë
236 ì
237 í
238 î
239 ï
240 ð
241 ñ
242 ò
243 ó
244 ô
245 õ
246 ö
247 ÷
248 ø
249 ù
250 ú
251 û
252 ü
253 ý
254 þ
255 ÿ
305 ı
402 ƒ
8215 ‗
9472 ─
9474 │
9484 ┌
9488 ┐
9492 └
9496 ┘
9500 ├
9508 ┤
9516 ┬
9524 ┴
9532 ┼
9552 ═
9553 ║
9556 ╔
9559 ╗
9562 ╚
9565 ╝
9568 ╠
9571 ╣
9574 ╦
9577 ╩
9580 ╬
9600 ▀
9604 ▄
9608 █
9617 ░
9618 ▒
9619 ▓
9632 ■
答案 0 :(得分:1)
当您重定向到文件时,Python不知道要使用哪种编码。重定向到文件是一个shell操作,Python理解一个shell变量,指示要使用的编码。在重定向到文件之前设置以下环境变量:
PYTHONIOENCODING=utf8