1
ushuz 2013-12-07 17:59:40 +08:00 via iPhone 1
转成str
str() |
3
Hackathon 2013-12-07 18:26:42 +08:00 3
Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information. >>> a = u'\xb2\xe2\xca\xd4' >>> b = a.encode('raw_unicode_escape') >>> print b 测试 >>> c = a.encode('latin1') >>> print c 测试 >>> |
6
lnehe 2013-12-07 20:07:45 +08:00
python的字符编码问题一直搞不懂。。。
|
7
F0ur 2013-12-07 20:15:01 +08:00
python的字符编码一直个要研究的问题- -
|
8
9hills 2013-12-07 20:18:23 +08:00
这个不是字符编码问题<_<
|
9
VYSE 2013-12-07 20:29:14 +08:00
标题里的就是'\xb2\xe2\xca\xd4'就是GB2312编码的,加u在encode转换其实蛮诡异的,不过latin1还能encode说明Python根据OS环境做了些取舍,放在英文默认编码系统里肯定转不出来。
附言里是utf-8的, print '\xe5\xbe\xae\xe4\xbf\xae'.decode('utf-8')即可。 \x出现在u''里表示的就不是byte而是等效于\u00XX, 比如u'\xe5\xbe\xae\xe4\xbf\xae'其实等于u'\u00e5\u00be\u00ae\u00e4\u00bf\u00ae',这样表示的是unicode char table里的第XX位而不是字节,意义就全变了。 反正bytes出现在unicode str里实在诡异。 |
10
shenGun 2013-12-11 15:49:15 +08:00
http://docs.python.org/2/howto/unicode.html
Latin-1, also known as ISO-8859-1, is a similar encoding. Unicode code points 0-255 are identical to the Latin-1 values, so converting to this encoding simply requires converting code points to byte values; if a code point larger than 255 is encountered, the string can’t be encoded into Latin-1. 在Documentation中提示unicode的0-255编码和Latin-1的0-255是一样的。说以u'\xb2\xe2\xca\xd4'.decode('Latin-1')转好之后就是'\xb2\xe2\xca\xd4'其实好像还是GB2312的编码 |
11
borneo 2013-12-15 21:19:34 +08:00
hey man.
by the way, keep it compatible with Python 2+3. http://lucumr.pocoo.org/2011/1/22/forwards-compatible-python/ |
12
yingluck OP |
13
lzjun 2016-08-11 14:46:24 +08:00 1
|