前言

有时候从接口的返回值里面获取到的是类似"%u4E0A%u6D77%u60A0%u60A0"这种格式的编码,不是python里面的unicode编码。

python里面的unicode编码应该是这种格式:\u4e0a\u6d77\u60a0\u60a0

unicode编码-python2

1.先看下python的unicode编码:\u60a0,这个是\u开头的,里面的英文是小写

# coding:utf-8

# 前面加u可以直接打印中文
a = u"\u4e0a\u6d77\u60a0\u60a0"
print(a) # 字符串需decode成默认unicode编码
b = r"\u4e0a\u6d77\u60a0\u60a0"
print(b.decode("unicode_escape"))

2.如果在字符串前面加个u,意思是转化成unicode编码,如果获取到的是应该字符串原型,那就需要decode解码成unicode编码,python里面默认的unicode编码名称是unicode_escape

替换%-python2

1.如果是这种带%的编码,先替换成,这样就是unicode编码了,虽然里面的英文字符是大小,还好这里不区分大小写。

# coding:utf-8

c = "%u4E0A%u6D77%u60A0%u60A0"

# 解决办法一:替换%
d = c.replace("%", "\\")
print(d.decode('unicode_escape'))

解决办法二:unichr

1.先切割成单个字符,再用unichr转换成中文,再连成字符串,这个有点复杂了

# coding:utf-8
def switch_to_ch(f):
'''转换成中文'''
g = f.split("%u")[1:]
h = [''+unichr(int(i, 16)) for i in g]
return "".join(h) if __name__ == "__main__":
f = "%u4e0a%u6d77%u60a0%u60a0"
ch = switch_to_ch(f)
print(ch)

python3解码

1.python3默认的编码就是unicode,这个跟python2还不太一样,如果直接给字符串decode会报错:AttributeError: 'str' object has no attribute 'ecode'

2.python3先encode成utf-8编码,再decode成默认的unicode就可以了

3.代码参考

# coding:utf-8

c = "%u4E0A%u6D77%u60A0%u60A0"
# python3解决办法:替换%
d = c.replace("%", "\\")
print(d.encode("utf-8").decode("unicode_escape"))

python自动化交流 QQ群:779429633

python笔记6-%u60A0和\u60a0类似unicode解码的更多相关文章

  1. python笔记之常用模块用法分析

    python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...

  2. boost.python笔记

    boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...

  3. python笔记之subprocess模块

    python笔记之subprocess模块 [TOC] 从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spaw ...

  4. python笔记之Cmd模块

    python笔记之Cmd模块 Cmd类型提供了一个创建命令行解析器的框架,默认情况下,它使用readline来进行交互式操作.命令行编辑和命令完成. 使用cmd创建的命令行解释器循环读取输入的所有行并 ...

  5. s21day16 python笔记

    s21day16 python笔记 一.模块 1.1 模块的定义 模块的定义 可以吧一个py文件或一个文件夹(包)当作一个模块,以便于以后其他py文件的调用 包的定义(python2与python3的 ...

  6. guxh的python笔记一:数据类型

    1,基本概念 1.1,数据类型 基本数据类型:字符串,数字,布尔等 引用数据类型:相对不可变(元组),可变(列表,字典,集合等) 基本数据类型存放实际值,引用数据类型存放对象的地址(即引用) ==:判 ...

  7. s21day12 python笔记

    s21day12 python笔记 一.函数中高级 1.1 函数可以做返回值 #示例: def func(): print(123) def bar(): return func v = bar() ...

  8. s21day04 python笔记

    s21day04 python笔记 一.上周知识回顾及补充 回顾 补充 编译型语言和解释性语言 编译型:代码写完后,编译器将其变成成另外一个文件,然后交给计算机执行 常见的编译型语言:C,C++,Ja ...

  9. s21day02 python笔记

    s21day02 python笔记 一.昨日内容回顾及补充 内容回顾 补充 if条件语句嵌套 10086示例 pycharm更改解释器 python3.7解释器 python2.7解释器 二.循环语句 ...

随机推荐

  1. csu 1806 & csu 1742 (simpson公式+最短路)

    1806: Toll Time Limit: 5 Sec  Memory Limit: 128 MB  Special JudgeSubmit: 256  Solved: 74[Submit][Sta ...

  2. 【前端笔记】浅谈js继承

    我们先想想我们用js最后要怎样实现面向对象的编程.事实上我们必须用上原型链这种东西. 我们的父类superType有属性和方法,并且一些能被子类subType继承,一些能被覆盖,但是丝毫不会影响到父类 ...

  3. [MySQL] specified key was too long max key length is 767bytes

    https://blog.csdn.net/u012099869/article/details/53815084/

  4. js学习笔记1:语法、数据类型与转换、运算符与运算

    注意: 上部代码错误,将停止运行,下部的代码无法显示            typeof 用来定义内容类型,不会输出内容只会输出类型 一.js输出语法         1. 弹窗输出('')内的内容: ...

  5. CodeForcs 797E Array Queries

    $dp$预处理,暴力. 如果$k > sqrt(n)$,那么答案不会超过$sqrt(n)$,暴力模拟即可.如果$k <= sqrt(n)$,那么可以$dp$预处理打表. #include ...

  6. Maven入门使用(一)

    一.什么是maven 一般认为maven是项目构建工具+依赖管理工具+项目信息管理工具. maven是一个强大的构建工具,能够帮助我们自动化构建过程. 清理.编译.测试.生成报告.打包.部署都是可以通 ...

  7. Linux命令之usermod

    usermod [选项] 登录名 usermod修改用户基本信息. (1).常用选项 -d,--home HOME_DIR 用户的新主目录 -g,--gid GROUP 强制GROUP为新主组 -G, ...

  8. 八步详解Hibernate的搭建及使用

    本文通过了八个步骤以及一些实例添加用户来介绍Hibernate的搭建和使用,真切的介绍了hibernate的基本用法,其中好多优点等待我们自己去发现,比如hibernate中的缓存机制,映射方案. 1 ...

  9. vmware12安装centos7系统详解

    1.首先需要准备的工具有vmware12和contos7的系统. vmvare12下载地址: http://pan.baidu.com/s/1i5vH50D contos7我自己使用的为1511版本. ...

  10. BZOJ 4276: [ONTAK2015]Bajtman i Okrągły Robin

    最大权值匹配,贪心匈牙利即可. 检查一些人是否能被全部抓住可以采用左端点排序,右端点优先队列处理. By:大奕哥 #include<bits/stdc++.h> using namespa ...