字符串格式转换
发表于 : 2016-12-16 9:48
我现在有些字符串是ASCII码和unicode格式混编的,例如下面:
a = "\u5317\u4eacabc"
我想转化为 a = "北京abc"
请问这该怎么转。
a = "\u5317\u4eacabc"
我想转化为 a = "北京abc"
请问这该怎么转。
代码: 全选
$ echo "\u5317\u4eacabc" | perl -MEncode -pe 's/\\u([0-9a-fA-F]{4})/encode("utf8", pack("U", hex($1)))/eg'
北京abc
代码: 全选
>>> a = u'\u5317\u4eacabc'
>>> print a.encode("utf-8")
北京abc
现在我的字符串是不带前面那个‘u’,就单独是 a = '\u5317\u4eacabc'oneleaf 写了:代码: 全选
>>> a = u'\u5317\u4eacabc' >>> print a.encode("utf-8") 北京abc
试了下,结果是正确的。HuntXu 写了:以前写的代码: 全选
$ echo "\u5317\u4eacabc" | perl -MEncode -pe 's/\\u([0-9a-fA-F]{4})/encode("utf8", pack("U", hex($1)))/eg' 北京abc
代码: 全选
>>> a = "\u5317\u4eacabc"
>>> print a.decode('unicode-escape').encode("utf-8")
北京abc
代码: 全选
temp_project>:114] the unicode--title is: \u97f5\u52a8\u4e2d\u56fd China in Motion 2015
[I 161216 13:37:31 <temp_project>:116] the title is: \u97f5\u52a8\u4e2d\u56fd China in Motion 2015
[I 161216 13:37:31 <temp_project>:114] the unicode--title is: \u4e2d\u56fd
[I 161216 13:37:31 <temp_project>:116] the title is: \u4e2d\u56fd
代码: 全选
>>> a = "\u0026"
>>> b = a.decode('unicode-escape').encode('utf-8')
>>> b
'&'
>>> aa = "\u82f1"
>>> bb = aa.decode('unicode-escape').encode('utf-8')
>>>bb
'\xe8\x8b\xb1'
>>> print bb
英
>>>
代码: 全选
In [1]: a=bytes(u'\u5317\u4eacabc','utf-8').decode('utf-8')
In [2]: a
Out[2]: '北京abc'