python3出现转码问题的总结

对于此(类)问题:

(1)出现UnicodeEncodeError –> 说明是Unicode编码时候的问题;

(2) ‘gbk’ codec can’t encode character –> 说明是将Unicode字符编码为GBK时候出现的问题;

此时,往往最大的可能就是,本身Unicode类型的字符中,包含了一些无法转换为GBK编码的一些字符。

解决办法是:

  • 方案1:

在对unicode字符编码时,添加ignore参数,忽略无法无法编码的字符,这样就可以正常编码为GBK了。

对应代码为:

gbkTypeStr = unicodeTypeStr.encode(“GBK“, ‘ignore’);
  • 方案2:

或者,将其转换为GBK编码的超集GB18030 (即,GBK是GB18030的子集):

gb18030TypeStr = unicodeTypeStr.encode(“GB18030“);

对应的得到的字符是GB18030的编码。

【题外话】

对于上述中,将原先的utf-8的字符转换为Unicode的时候,其实更加安全的做法,也可以将:

titleUni = titleHtml.decode(“UTF-8”);

替换为:

titleUni = titleHtml.decode(“UTF-8”, ‘ignore’);

这样可以实现,即使对于那些,相对来说是无关紧要的一些特殊字符,也可以成功编码,避免编码出错,提高程序的健壮性。

时间: 2024-11-08 19:40:38

python3出现转码问题的总结的相关文章

测试使用fpm将python3的源码打包成rpm来安装

一.基础环境 1.在tvm-base的基础上,复制一个镜像为tvm-rpm来测试. 2.网络: eth0:host-only(用于虚拟内网,手动固定IP,这样从宿主机可以直接连接到这个vm) eth1:NAT(用于上外网,动态IP) [[email protected] ~]# ip a s dev eth0 |grep global     inet 192.168.56.253/24 brd 192.168.56.255 scope global eth0 [[email protected

烂泥:python2.7和python3.5源码安装

本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前几天在centos6.6安装ansible时,一直提示python版本不对,导致不能安装.只能手工进行手工安装python,为了以后不再添这个坑,特记录相关的安装过程. 本文以python2.7和python3.5安装为例. 一.安装python2.7 在安装python之前,我们先来安装在进行python编译时,所需要的的各种依赖软件包,如下: yum -y install xz

Python3.5源码安装

1.下载源码包 前往官网:https://www.python.org/downloads/source/ [[email protected] opt]#wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz 2.安装: 安装基本GCC编译环境 yum -y install gcc gcc-c++ make automake autoconf 安装源码包 [[email protected] opt]#tar fx Pytho

centos上安装Python3.4——源码安装

1.安装Python的依赖包 yum groupinstall "Development tools" yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 2.下载Python3.4的源码包并编译 wget https://www.python.org/

python3中文转码方法

python3中的转码,必须是byte类型的,str类型的会返回未定义方法. 示例代码如下 1 doc = pq(start_html.content) 2 print("orig text=", doc.text()) 3 byte1 = bytes(doc.text(),"utf-8") 4 print("dest text=", byte1.decode("gb2312")) byte类型的decode和encode方法

Python3.7源码在windows(VS2015)下的编译和安装

下载官方源码,使用vs2015(WIN10SDK),最python3.7.0的源码进行编译,编译出不同的版本(release,debug),并配置python的运行环境(环境变量的配置). 测试环境介绍和准备 测试环境: 操作系统:windows10 Python版本:3.7.0 VS版本:vs2015社区版(免费) 相关工具下载: VS版本vs2015社区版(免费) win10SDK(安装vs2015是可以选择,如果没有安装则需要独立安装) Python3.7.0 (源码和安装文件) http

Python3.6源码编译安装

下载安装Python-3.6.5包 [root@minion-1 ~]# wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz 解压包 [root@minion-1 ~]#tar xf Python-3.6.5.tgz 进入目录并设置路径 [root@minion-1 ~]cd Python-3.6.5/ && ./configure --prefix=/usr/local/python36 编译安装 [root@min

Python3.6和Django源码编译安装

Python3.6源码编译安装 系统环境:CentOS 7 下载Python源码包: https://www.python.org/downloads/ 编译.安装: 1 2 3 4 5 [[email protected] /]# tar -xzvf /usr/local/src/Python-3.6.2.tgz -C /mydev [[email protected] /]# cd /mydev/Python-3.6.2 [[email protected] Python-3.6.2]# .

CentOS6.5源码安装python3.5.2

前提: 1.实现自动补全需要安装模块 readline-devel (yum install -y readline-devel) 2.实现支持SSL协议需安装模块 openssl-devel (yum install -y openssl-devel) 安装步骤 1.下载python3.5源码包到/usr/local/src/ (https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz) 2. tar xf Python-3.5.2.tg