gpt4 book ai didi

python - 如何正确设置 Python 3(和 cmd.exe)编码?

转载 作者:太空狗 更新时间:2023-10-30 00:17:02 25 4
gpt4 key购买 nike

我正在尝试用 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 文件是 UTF-8 编码的。


更新:

即使我的问题还没有真正的答案,也值得阅读问题下的评论。我还使用 cmd.exe 的默认光栅字体创建了所有可打印字符的列表(在 Windows 10 上测试)。要打印字符,只需使用 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 ■

最佳答案

当你重定向到一个文件时,Python 不知道要使用什么编码。重定向到一个文件是一个 shell 操作,Python 理解一个指示要使用的编码的 shell 变量。在重定向到文件之前设置以下环境变量:

PYTHONIOENCODING=utf8

关于python - 如何正确设置 Python 3(和 cmd.exe)编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32126455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com