我正在尝试使用Python创建二进制转换器,但我遇到了一些奇怪的代码:
>>> print '\x97'
—
>>> print '\x96'
–
>>> print '\x94'
”
>>> print '\x95'
•
该编码叫什么?
答案 0 :(得分:2)
该编码可能是九个Windows单字节“ANSI”编码中的任何一种,cp1250
到cp1258
包括:
>>> guff = "\x97\x96\x94\x95"
>>> uguff0 = guff.decode('1250')
>>> all(guff.decode(str(e)) == uguff0 for e in xrange(1251, 1259))
True
用法:
1250:使用基于拉丁语的字母表的中/东欧语言,例如:波兰语,捷克语,斯洛伐克语,匈牙利语
1251:西里尔字母,例如俄罗斯
1252:具有拉丁字母的西欧语言
其他的是土耳其语,希腊语,希伯来语,阿拉伯语和越南语的单语言编码。
要了解您的计算机上正在使用的内容:
>>> import locale
>>> locale.getpreferredencoding()
'cp1252'
以下是代码的含义:
>>> from unicodedata import name
>>> for c in uguff0:
... print repr(c), name(c)
...
u'\u2014' EM DASH
u'\u2013' EN DASH
u'\u201d' RIGHT DOUBLE QUOTATION MARK
u'\u2022' BULLET
>>>
答案 1 :(得分:1)
那将是十六进制编码。这意味着取十六进制值97
,十进制为151,并在字符串中使用该字符。
字符151是em-dash,150是en-dash,148是end-double-quote,149是项目符号点,如here所示,请记住这些字符是不 Unicode代码点(如上所述),但Windows code page个字符。