इम पायथन में एक स्माइली प्रिंट करने का प्रयास:पाइथन 3 (और cmd.exe) एन्कोडिंग को कैसे व्यवस्थित करें?
यह इंटरैक्टिव खोल (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>
पायथन-फ़ाइल यूटीएफ -8 एन्कोडेड है।
अद्यतन:
यहां तक कि अगर वहाँ मेरी समस्या के लिए कोई वास्तविक anwer अभी तक नहीं है, यह प्रश्न के अंतर्गत टिप्पणी पढ़ने के लिए लायक है। मैंने cmd.exe (विंडोज 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 ■
पिछले कुछ सप्ताहों में, मैं, भी, 'UnicodeEncodeError' के साथ संघर्ष कर दिया गया है, एक सरल alt साथ यूनिकोड वर्ण, यूनिकोड वर्ण विंडोज पर सुलभ प्रिंट करने का प्रयास cmd कंसोल पर cmd कंसोल पर रीडायरेक्ट करते समय, पावरहेल कंसोल पर, और पावरहेल से रीडायरेक्ट करते समय सामान्य अक्षर ठीक से cmd कंसोल पर। संक्षेप में, प्रत्येक प्रोग्राम, इनपुट विधि, और आउटपुट विधि एक अलग एन्कोडिंग और एक अलग कोड पेज और विभिन्न लाइन अंत का उपयोग करता है। यह एक गड़बड़ है। मैं 'try..except' और एक कामकाज के साथ एक docstring के एक समूह के साथ समाप्त हो गया। – TigerhawkT3
हालांकि, मैं सत्यापित कर सकता हूं कि लिनक्स केडीई कंसोल की तरह एक देशी यूनिकोड (यूटीएफ -8) टर्मिनल या टर्मिनल एमुलेटर, बिना किसी समस्या वाले यूनिकोड वर्णों को संसाधित करता है। – TigerhawkT3
मुझे इस [उत्तर] (http://stackoverflow.com/a/17177904/3900879) का उपयोग करके काम करने के लिए आपका उदाहरण मिला। मैंने अपना 'सेमीडी' फ़ॉन्ट' ल्यूसीडा कंसोल 'में बदल दिया और' chcp 65001' (कोड पेज [65001] (https://msdn.microsoft.com/en-us/library/windows/desktop/dd317756%28v=vs .85% 29.aspx) यूटीएफ -8 है)। –