python抓取到的网页源代码有类似\u51a0\u7434,请问如何转换成中文?
回复内容:
找到了一个库,叫ast,里面有个函数,叫literal_eval。
谢邀,多熟悉下标准库(7.8. codecs
)吧:
<code class="language-text">>>> s = r'\u51a0\u7434'
>>> print s
\u51a0\u7434
>>> s.decode('unicode_escape')
u'\u51a0\u7434'
>>> print s.decode('unicode_escape')
冠琴
</code>
ログイン後にコピー
2014-11-25
看了轮子哥的回答后,想到Python 3.x中提供了ord和chr两个内建函数。实现unicode code point和字符之间的相互转换。
Ongoing-Study/ucps.py at master · myd7349/Ongoing-Study · GitHub
手边没有Python 2。orz。
2015-06-03
之前回答的内容有误导性!对不起。
Python3中如何得到Unicode码对应的中文? - myd7349 的回答
----
'u\u51a0\u7434'可不是u'\u51a0\u7434',题主自己不明白自己搜到的东西的意思, @刘项 也不知道题主在问什么(发现经提示后已经知道题主在问什么了)。这个51a0和7434代表16进制的4个字节,这是unicode编码,python肯定有提供数字到字符或者字节数组到字符串的函数,你得先把他们处理成数字,然后再转。
Javascript:
这个实际上是
Unicode码。Unicode用16位整数表示世界上存在的任何一种字符,即任何一个能显示的字符都对应Unicode中的一个整数。
这种写法是Unicode字符的转义写法,用\u后面加上这个字对应Unicode的整数的
十六进制记法来表示一个Unicode字符。
不止是Python,
大量的编程语言中使用两字节的Unicode作为基本字符型。比如Java和Javascript。
有很多的工具可以帮你进行文字到Unicode的转换。比如:16進文字コードin Javaユニコード