Python3编码问题 Unicode utf-8 bytes互转方法

为什么需要本文,因为在对接某些很老的接口的时候,需要传递过去的是16进制的hex字符串,并且要求对传的字符串做编码,这里就介绍了utf-8 Unicode bytes 等等。

#英文使用utf-8 转换成16进制hex字符串的方法
newstr = 'asd'
b_str = bytes(newstr,encoding='utf-8')
print(b_str)
hex_str = b_str.hex() #将bytes类型转换成16进制的hex字符串
print(hex_str) #字节码转16进制hex的方法
print(bytes.fromhex(hex_str).decode('utf-8')) #将16进制hex字符串转换成bytes,然后在转换成字符串
print(type('中文'.encode('utf-8')),'中文'.encode('unicode_escape'),'中文123456'.encode('unicode_escape').decode('utf-8'))

#中文转换成Unicode的一种方法之一
u_str = '中文123456'
b_str = bytes(u_str,encoding='unicode_escape')
h_u_s = b_str.hex()print ("\u4e2d\u6587") #Unicode编码可直接输出
#中文使用Unicode转换成bytes再转换成16进制hex方法 包含英文和数字
u_cn = '中文asd123'
hex_msg = bytes(u_cn,encoding='utf_16_be').hex()
#这是特殊要求下最终的解决方案
#注意在Python3中已经没有了直接将字符串变成bytes或者Unicode的方法了
#也就是说,在Python中 u'中文'已经不再奏效

#bytes转str
b_str = bytes('中文',encoding='utf-8')
print(b_str.decode()) #直接输出为普通字符串

以上这篇Python3编码问题 Unicode utf-8 bytes互转方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python 转换文本编码实现解析

    最近在做周报的时候,需要把csv文本中的数据提取出来制作表格后生产图表. 在获取csv文本内容的时候,基本上都是用with open(filename, encoding ='UTF-8') as f:来打开csv文本,但是实际使用过程中发现有些csv文本并不是utf-8格式,从而导致程序在run的过程中报错,每次都需要手动去把该文本文件的编码格式修改成utf-8,再次来run该程序,所以想说:直接在程序中判断并修改文本编码. 基本思路:先查找该文本是否是utf-8的编码,如果不是则修改为utf

  • python3编码问题汇总

    这两天写了个监测网页的爬虫,作用是跟踪一个网页的变化,但运行了一晚出现了一个问题....希望大家不吝赐教! 我用的是python3,错误在对html response的decode时抛出,代码原样为: response = urllib.urlopen(dsturl) content = response.read().decode('utf-8') 抛出错误为 File "./unxingCrawler_p3.py", line 50, in getNewPhones content

  • 解决Python中pandas读取*.csv文件出现编码问题

    1.问题 在使用Python中pandas读取csv文件时,由于文件编码格式出现以下问题: Traceback (most recent call last): File "pandas\_libs\parsers.pyx", line 1134, in pandas._libs.parsers.TextReader._convert_tokens File "pandas\_libs\parsers.pyx", line 1240, in pandas._libs

  • python实现unicode转中文及转换默认编码的方法

    本文实例讲述了python实现unicode转中文及转换默认编码的方法.分享给大家供大家参考,具体如下: 一.在爬虫抓取网页信息时常需要将类似"\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8"转换为中文,实际上这是unicode的中文编码.可用以下方法转换: 1. >>> s = u'\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8' >>> print s 人生苦短,

  • Python输出\u编码将其转换成中文的实例

    爬取了下小猪短租的网站出租房信息但是输出的时候是这种: 百度了下.python2.7在window上的编码确实是个坑 解决如下 如果是个字典的话要先将其转成字符串 导入json库 然后 这么输出(json.dumps(data).decode("unicode-escape")) 整个代码demo # -*- coding: UTF-8 -*- #小猪短租爬取 import requests from bs4 import BeautifulSoup import json def g

  • python3 中文乱码与默认编码格式设定方法

    python默认编码格式是utf-8.在python2.7中,可以通过sys.setdefaultencoding('gbk')设定默认编码格式,而在python3.3中sys.setdefaultencoding()这个函数已经没有了.在python3.3中该如何设置内置的默认编码格式啊!急求!!! (类似于"#coding:gbk"这种就不必来说了.能让import sys print(sys.getdefaultencoding())输出"gbk"的大神请进!

  • python中文编码与json中文输出问题详解

    前言 python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符串处理的原理,附带解决 json 文件输出时,显示中文而非 unicode 问题.首先简要介绍字符串编码的历史,其次,讲解 python 对于字符串的处理,及编码的检测与转换,最后,介绍 python 爬虫采取的 json 数据存入文件时中文输出的问题. 参考书籍:Python网络爬虫从入门到实践 by唐松 在python 2或者3 ,字符串编码只有两类

  • Python3编码问题 Unicode utf-8 bytes互转方法

    为什么需要本文,因为在对接某些很老的接口的时候,需要传递过去的是16进制的hex字符串,并且要求对传的字符串做编码,这里就介绍了utf-8 Unicode bytes 等等. #英文使用utf-8 转换成16进制hex字符串的方法 newstr = 'asd' b_str = bytes(newstr,encoding='utf-8') print(b_str) hex_str = b_str.hex() #将bytes类型转换成16进制的hex字符串 print(hex_str) #字节码转1

  • 深入浅析python3中的unicode和bytes问题

    最近写了一些python3程序,四处能看到bytes类型,而它并不存在于python2中,这也是python3和python2显著区别之一. 以前在写python2代码的时候,经常会遇到很多编码报错的异常,原因在于python2对unicode的支持不是特别理想.而在python3中,所有编写的代码都是unicode,python解析器在运行的时候,内部都转换(除非你显示定义为bytes类型)为unicode,减少了出错的可能性. 在python3中,有两种字符串类型,默认的就是str,即uni

  • Python字符编码转码之GBK,UTF8互转

    一.Python字符编码介绍 1.须知: 在python 2中默认编码是 ASCII,而在python 3中默认编码是 unicode unicode 分为utf-32 (占4个字节),utf-16(占两个字节),utf-8(占1-4个字节),所以utf-16 是最常用的unicode版本,但是在文件里存的还是utf-8,因为utf8省空间 在python 3,encode编码的同时会把stringl变成bytes类型,decode解码的同时会把bytes类型变成string类型 在unicod

  • Java编码算法与哈希算法深入分析使用方法

    目录 一.编码算法 1.什么是编码 2.URL编码 3.Base64编码 二.哈希算法 1.概述 2.哈希碰撞 3.常用哈希算法 ①.MD5 ②.SHA-1 ③.RipeMD-160 4.哈希算法的用途 三.小结 一.编码算法 1.什么是编码 ASCII 码就是一种编码,字母 A 的编码是十六进制的 0x41 ,字母 B 是 0x42 ,以此类推. 因为 ASCII 编码最多只能有 127 个字符,要想对更多的文字进行编码,就需要用占用 2个字节的 Unicode .而中文的"中"字使

  • Java 字节数组类型(byte[])与int类型互转方法

    代码如下: public class CommonUtils { //高位在前,低位在后 public static byte[] int2bytes(int num){ byte[] result = new byte[4]; result[0] = (byte)((num >>> 24) & 0xff);//说明一 result[1] = (byte)((num >>> 16)& 0xff ); result[2] = (byte)((num >

  • 用PHP将Unicode 转化为UTF-8的实现方法(推荐)

    实例如下: function unescape($str) { $str = rawurldecode($str); preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U",$str,$r); $ar = $r[0]; //print_r($ar); foreach($ar as $k=>$v) { if(substr($v,0,2) == "%u"){ $ar[$k] = iconv("U

  • python3 打印输出字典中特定的某个key的方法示例

    本文实例讲述了python3 打印输出字典中特定的某个key的方法.分享给大家供大家参考,具体如下: 大家都知道python中的字典里的元素是无序的,不能通过索引去找到它,今天说我下通过下面几个方法去找某个特定的key的元素. Tester = {"name":"shawxie", "phone":"135xxxx", "Address":"深圳市南山区", "job"

  • python3 面向对象__类的内置属性与方法的实例代码

    0.object类源码 class object: """ The most base type """ def __delattr__(self, *args, **kwargs): # real signature unknown """ Implement delattr(self, name). """ pass def __dir__(self): # real signatu

  • Python3使用requests模块实现显示下载进度的方法详解

    本文实例讲述了Python3使用requests模块实现显示下载进度的方法.分享给大家供大家参考,具体如下: 一.配置request 1. 相关资料 请求关键参数:stream=True.默认情况下,当你进行网络请求后,响应体会立即被下载.你可以通过 stream 参数覆盖这个行为,推迟下载响应体直到访问 Response.content 属性. tarball_url = 'https://github.com/kennethreitz/requests/tarball/master' r =

随机推荐