如何在python中获得字符?
我怎样才能得到°
(度)string?
把这条线放在你的源头
# -*- coding: utf-8 -*-
如果您的编辑器使用不同的编码,请replaceutf-8
那么你可以直接在源代码中包含utf-8字符
这是指定unicode字符的编码最友好的版本:
degree_sign= u'\N{DEGREE SIGN}'
注意:必须是\N
构造中的大写N,以避免与'\ n'换行符混淆。 花括号内的字符名称可以是任何情况。
记住一个字符的名字比它的Unicode索引更容易。 它也更易读,易于debugging。 字符replace发生在编译时: .py[co]
文件将包含u'°'
的常量:
>>> import dis >>> c= compile('u"\N{DEGREE SIGN}"', '', 'eval') >>> dis.dis(c) 1 0 LOAD_CONST 0 (u'\xb0') 3 RETURN_VALUE >>> c.co_consts (u'\xb0',) >>> c= compile('u"\N{DEGREE SIGN}-\N{EMPTY SET}"', '', 'eval') >>> c.co_consts (u'\xb0-\u2205',) >>> print c.co_consts[0] °-∅
>>> u"\u00b0" u'\xb0' >>> print _ °
顺便说一句,我所做的只是在Google上search“unicode学位”。 这带来了两个结果:“度符号U + 00B0”和“摄氏度U + 2103”,它们实际上是不同的:
>>> u"\u2103" u'\u2103' >>> print _ ℃
上面的答案假设UTF8编码可以安全地使用 – 这个是专门针对Windows的。
Windows控制台通常使用CP850编码,而不是 utf-8,所以如果您尝试使用utf8编码的源文件,则会得到这两个(不正确的)字符,而不是度数°
。
演示(在Windows控制台中使用python 2.7):
deg = u'\xb0` # utf code for degree print deg.encode('utf8')
有效输出┬░
。
修复:只需强制正确的编码(或更好地使用unicode):
local_encoding = 'cp850' # adapt for other encodings deg = u'\xb0'.encode(local_encoding) print deg
或者如果您使用明确定义编码的源文件:
# -*- coding: utf-8 -*- local_encoding = 'cp850' # adapt for other encodings print " The current temperature in the country/city you've entered is " + temp_in_county_or_city + "°C.".decode('utf8').encode(local_encoding)
只需使用\xb0 (in a string);
python会自动转换它