python3里gbk编码的问题解决

在python3有关字符串的处理当中,经常会遇到

'gbk' codec can't encode character '\xa0'这个问题,原因是在str里面存在着不能正确编码的字符。

通过以下方法即可解决。

import requests
from bs4 import BeautifulSoup
url = "http://jecvay.com/2015/03/learning-compilers-1.html"
url = url.encode('gbk','ignore').decode('utf-8') //忽略
response = requests.get(url)
print(response)
soup = BeautifulSoup(response.text)

print(soup.body.text)

以上方法在必须要记录数据的时候会出现数据不准确问题

python3 字符串无法将 gbk 完全转换为utf8

对于必须存储的情况,将gbk -> 十六进制字节码文本 保存,需要的时候在转换为gbk以便显示。

def string_hex(data):
    lin = ['%02X' % i for i in data]
    return "".join(lin).upper()

def __ToUTF8(tuple):
    lists = []
    for itme in tuple:
        tmp = itme
        if type(itme) == bytes:
            try:
                tmp = itme.decode('gbk')
            except UnicodeDecodeError:
                tmp = string_hex(itme)
        lists.append(tmp)
    return lists
def readFileAll(file):
    with open(file, 'rb') as f:
        data = f.read()
    return data
s = readFileAll('gkb.txt') //gbk 字符串文件
sx = string_hex(s)//转化为16进制文本
print(sx)

到此这篇关于python3里gbk编码的问题解决的文章就介绍到这了,更多相关python3 gbk编码内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python爬虫把url链接编码成gbk2312格式过程解析

    1. 问题 抓取某个网站,发现请求参数是乱码格式, 这是点击 TextView,发现请求参数如下图所示 3. 那么=%B9%FA%CE%F1%D4%BA%B7%A2%D5%B9%D1%D0%BE%BF%D6%D0%D0%C4是什么东西啊 解码后是 =国务院发展研究中心 代码实现: content = "我爱中国" import urllib res = urllib.quote(content.encode('gb2312')) print res print "111111

  • 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

  • Python有关Unicode UTF-8 GBK编码问题详解

    目录 1.统一码(Unicode) 2.UTF-8编码 总结 1.统一码(Unicode) Unicode也叫万国码.单一码,是计算机科学领域里的一项业界标准,包括字符集.编码方案等.对于世界上所有的语言文字再unicode中都可以查看到.[汉]字的编码解释官网https://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=6C49 unicode编码就是为了统一世界上的编码,有一个统一的规范.但是它还存在一些问题. Unicode的问题 需

  • python3的url编码和解码,自定义gbk、utf-8的例子

    因为很多时候要涉及到url的编码和解码工作,所以自己制作了一个类,废话不多说 码上见! # coding:utf-8 import urllib.parse class Urlchuli(): """Url处理类,需要传入两个实参:Urlchuli('实参','编码类型'),默认utf-8 url编码方法:url_bm() url解码方法:url_jm()""" def __init__(self,can,mazhi='utf-8'): self

  • 解决Python print 输出文本显示 gbk 编码错误问题

    前阵子想爬点东西,结果一直提示错误UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position,在网上一查,发现是 Windows 的控制台的问题.控制台的编码是 GBK,Python 是 UTF-8,造成了冲突.下面给出三种解决方法. 第一种方法:直接替换出错的内容 import requests url = 'https://blog.csdn.net/jianhong1990/article/detail

  • python3里gbk编码的问题解决

    在python3有关字符串的处理当中,经常会遇到 'gbk' codec can't encode character '\xa0'这个问题,原因是在str里面存在着不能正确编码的字符. 通过以下方法即可解决. import requests from bs4 import BeautifulSoup url = "http://jecvay.com/2015/03/learning-compilers-1.html" url = url.encode('gbk','ignore').

  • php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总

    从旧版升级到php5.4,恐怕最麻烦的就是htmlspecialchars这个问题了!当然,htmlentities也会受影响,不过,对于中文站来说一般用htmlspecialchars比较常见,htmlentities非常少用到. 可能老外认为网页普遍应该是utf-8编码的,于是苦了那些用GB2312,GBK编码的中文站......! 具体表现: 复制代码 代码如下: $str = "9enjoy.com的php版本是5.2.10"; echo htmlspecialchars($s

  • Python3的unicode编码转换成中文的问题及解决方案

    这篇文章主要介绍了Python3的unicode编码转换成中文的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从别的地方搬过来的,担心以后不容易搜索到,就收集过来. 我当时面临的问题是要从C++发json代码出来,用python写了个server,然后返回给C++程序,结果收到的是: httpSvrDataCbUser: {"tranNO": "0808ad498670dc996", "d

  • Python2与Python3关于字符串编码处理的差别总结

    0x00 字符的编码 计算机毕竟是西方国家的发明,最开始并没有想到会普及到全世界,只用一个字节中的7位(ASCII)来表示字符对于现在庞大的文字数量来说显然不够,所以先后经历了好几套编码方案,不同国家和地区又有自己的方案,造成了现在诸多的历史遗留问题. 0x01 Python中的字符串 Python有两种不同的字符串,一种存储文本,一种存储字节.对于文本,Python内部采用Unicode存储,而字节字符串显示原始字节序列或者ASCII. 什么叫编码(encode)? 按照字面意思和以往经验,我

  • 基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)

    php导入到excel乱码是因为utf8编码在xp系统不支持所有utf8编码转码一下就完美解决了utf-8编码案例Php代码 复制代码 代码如下: <?php header("Content-Type: application/vnd.ms-excel; charset=UTF-8"); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: m

  • jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)

    前言: 当jquery ajax在utf-8编码下(页面utf-8,接收utf-8),无任何问题.可以正常post.get,处理页面直接获取正确的内容. 但在以下情况下: GBK -> AJAX POST ->GBK UTF-8 -> AJAX POST ->GBK 后台代码无法获取正确的内容,通常表现为获取到奇怪字符.问号. 经典解决方法: 1:发送页面.接收页面均采用UTF-8编码. 2:发送页面在调用ajax post方法之前,将含有中文内容的input用encodeURIC

  • C#计算输入汉字GBK编码后十六进制数输出的方法

    本文实例讲述了C#计算输入汉字GBK编码后十六进制数输出的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace getCode { class Program { /// <summary> /// 计算输入汉字对应的GBK编码主函数入口 /// &l

  • 详谈python3 numpy-loadtxt的编码问题

    如下所示: data_array = np.loadtxt(filename, #文件名 delimiter=',', #分隔符 skiprows=1, #跳过第一行 dtype=bytes, #数据类型 usecols=use_col_index_lst).astype(str) #用指定列 ''' I think np.loadtxt("tile", dtype=bytes, delimiter="\n").astype(str) might work, but

随机推荐