鱼C论坛

 找回密码
 立即注册
查看: 1083|回复: 2

[已解决]Python 3.6 中文字符转换的问题

[复制链接]
发表于 2018-1-16 14:46:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 nfsq550ml 于 2018-1-16 14:47 编辑

最近爬网站的时候得到一个页面,好像是xml的,里面的中文都是%u打头的,如字符“%u4E2D%u5FC3”,始终无法转成正常中文,最后在http://tool.phpshuo.com/UrlDecode.html上用“Escape解码”成功转码为“中心”。

后来在网上找了一些方法,比如先解后编等等,但都无效。

求助:用Python3.6可不可以转换上面的%u开头的字符,需要用到哪些库,具体步骤是什么,谢谢!
最佳答案
2018-1-16 15:09:48
本帖最后由 sky 于 2018-1-16 15:13 编辑

百分号替换成 \
然后就是unicode python3 可以直接print

  1. data = u"\u4E2D\u5FC3"
  2. print(str(data))
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-16 15:09:48 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sky 于 2018-1-16 15:13 编辑

百分号替换成 \
然后就是unicode python3 可以直接print

  1. data = u"\u4E2D\u5FC3"
  2. print(str(data))
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-16 18:23:16 | 显示全部楼层
本帖最后由 nfsq550ml 于 2018-1-16 19:55 编辑
  1. s1 = "%u5176%u4ED6" # s1: 其它
  2. s1 = s1.replace('%', '\\')
  3. print("s1: ", s1, type(s1))
  4. print("s1: ", s1.encode('utf-8').decode('utf-8'))
  5. print("s1: ", s1.encode('utf-8').decode('unicode-escape'))

  6. s2 = "\u4E2D\u5FC3" # s2: 中心
  7. print("\ns2: ", s2, type(s2))
  8. print("s2: ", s2.encode('utf-8').decode('utf-8'))
复制代码


s1:抓取的原始字符串,以'%u'开头,然后再把‘%’转成‘\’,转换后的字符虽然仍为'str',但要用‘unicode-escape'解码
s2:  原始字符串就是'\u'开头

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 14:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表