iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python的字符转换常见bug
  • 113
分享到

python的字符转换常见bug

字符常见python 2023-01-31 06:01:27 113人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

1.python把一个unicode字符串写入文件为什么会报错?write方法的参数类型是str,str是二进制流(不包含编码信息),当你给出一个unicode对象时,会执行str函数转换成str类型再送给write方法。unicode转s

1.python把一个unicode字符串写入文件为什么会报错?

write方法的参数类型是str,str是二进制流(不包含编码信息),当你给出一个unicode对象时,会执行str函数转换成str类型再送给write方法。unicode转str包含一次编码,如不指定则默认使用ascii编码,而ascii编码集里汉字字符是没有对应的,所以报错。

正确做法是在代码里指定编码。比如在open里指定(fp= open('test.txt', 'w', encoding='utf-8')),或者在write的时候手动把unicode对象通过encode方法指定编码产生str。就是说写成fp.write(s.encode('utf8'))。注意unicode对象用encode是有意义的,str对象在py2里允许你对str对象使用encode,然而这是对指定了default encoding的情况下才有效的,因此不推荐新手对str直接encode。

2.Error:UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\u200e’ in position 43: illegal multibyte sequence

原来出现’gbk’ codec can’t encode”的错误的根本原因是,对于前面的,不论是用

titlehtml.decode(“UTF-8”);

还是titleHtml.decode(“UTF-8”, ‘ignore’);

还是titleHtml.decode(“UTF-8”, ‘replace’);

都是可以得到正常的titleUni的Unicode字符的,然后对于此Unicode的字符,需要print出来的话,由于本地系统是Win7中的cmd,默认codepage是CP936,即GBK的编码,所以需要先将上述的Unicode的titleUni先编码为GBK,然后再在cmd中显示出来,然后由于titleUni中包含一些GBK中无法显示的字符,导致此时提示“’gbk’ codec can’t encode”的错误的。


对于此(类)问题:

(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的编码。

--结束END--

本文标题: python的字符转换常见bug

本文链接: https://www.lsjlt.com/news/189395.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python的字符转换常见bug
    1.python把一个unicode字符串写入文件为什么会报错?write方法的参数类型是str,str是二进制流(不包含编码信息),当你给出一个unicode对象时,会执行str函数转换成str类型再送给write方法。unicode转s...
    99+
    2023-01-31
    字符 常见 python
  • 用Python转换一些常见全角字符为半
    前言 最近在爬日文小说的过程中,经常遇到全角(甚至和和半角混用),造成我(强迫症)强烈不适,就着手专门写一个脚本处理之 思路 首先在网上寻找看是否已经有现成库/脚本能做到,寻找一番之后只找到一些思路文章,这里就不重复了有一点要注意,不少文...
    99+
    2023-01-31
    全角 字符 常见
  • Python常见类型转换的小结
    目录一:常见类型的概念二:类型转换1,二进制,八进制,十进制,十六进制转换2,数值字符串转换3,字符串和字节byte转换4,报文数据包和其他类型的互转4.1 bin十六进制...
    99+
    2023-02-21
    Python常见类型转换 Python 类型转换
  • Python字符串常见操作
    Python字符串注意事项 Python字符串是不可以改变值的,更新一个字符串后要放到另一个变量中去 Python 不支持char类型的数据类型,也就是不支持单字符类型的数据。 Python 字符串常用内建函数 encode(enc...
    99+
    2023-01-30
    字符串 常见 操作
  • Java中常见的转义字符有哪些
    本篇内容主要讲解“Java中常见的转义字符有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中常见的转义字符有哪些”吧!  在Java字符常量中,反斜杠(\)是一个特殊的字符,被称为转...
    99+
    2023-06-02
  • Python常见的BUG类型有哪些
    今天小编给大家分享一下Python常见的BUG类型有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。错误类型 1:语法错误...
    99+
    2023-06-27
  • php中怎么转义特殊字符?常见转义字符浅析
    PHP是一种流行的编程语言,其中有许多操作字符串的函数。当我们在字符串中包含特殊字符时,为了防止出现意外的结果,需要使用转义字符对它们进行转义。在PHP中有许多特殊字符需要转义,下面将介绍一些常见的转义字符。反斜线(\)在PHP中,反斜线(...
    99+
    2023-05-14
    php
  • python 字符编码与转换
    unicode 中文英文默认统一 2个字节ASCII 只有英文和特殊字符 每个占用1个字节 不能存中文每个字节由8个比特(Bit)构成假如一个英文文档是2M,转换为unicode 编码转换,就变成了4M为了解决空间浪费的问题,在unicod...
    99+
    2023-01-30
    字符 python
  • Python 字符串转换为 JSON
    Python 字符串转换为 JSON JSON(JavaScript Object Notation)是一种常用的数据交换格式,它以文本形式表示结构化的数据,并且易于阅读和编写。在Python中,可以...
    99+
    2023-10-23
    python json 服务器 Python
  • Python中字符串常见操作
    (1)find  查找 格式:mystr.find(str, start, end) 例如: mystr.find(str, start=0, end=len(mystr)) 作用:检测str是否包含在mystr中,如果是则返回开始值的索...
    99+
    2023-01-30
    字符串 常见 操作
  • python字符怎么转换成字节
    可以使用encode()方法将字符串转换为字节,例如:```pythons = "Hello, World!"b = s.encod...
    99+
    2023-09-15
    python
  • Golang中如何转义常见的特殊字符
    在Golang语言中,字符串是一种重要的数据类型,因为它们被广泛用于数据的存储、传输和处理。但是,在处理字符串的时候,经常会遇到需要转义特殊字符的情况。这篇文章将介绍Golang中如何转义常见的特殊字符。转义字符在Golang中,转义字符以...
    99+
    2023-05-14
    Golang go语言 转义字符
  • 聊聊javascript中常见的一些转义字符
    JavaScript是一种基于文本的编程语言,因此它需要一种机制来处理特殊字符。这些特殊字符可以是控制字符,例如换行符和制表符,或者是一些需要转义的字符,例如引号和反斜杠。在JavaScript中,使用反斜杠(\)来指示特殊字符。这被称为转...
    99+
    2023-05-14
  • Python常见类型转换有哪些
    这篇文章主要讲解了“Python常见类型转换有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python常见类型转换有哪些”吧!一:常见类型的概念类型举例说明二进制a = 0b1010二...
    99+
    2023-07-05
  • Golang中怎么转义常见的特殊字符
    这篇文章主要介绍了Golang中怎么转义常见的特殊字符的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Golang中怎么转义常见的特殊字符文章都会有所收获,下面我们一起来看看吧。转义字符在Golang中,转义字符...
    99+
    2023-07-05
  • Python时间戳转换为字符串与字符串转换为时间戳
    实例代码: if __name__ == '__main__': # 时间戳 import time seconds = time.time() ...
    99+
    2023-02-15
    python字符串转换为日期 python字符串转换时间戳 python时间戳转换
  • Python字符串中字符的大写与小写的转换
    这篇文章主要介绍“Python字符串中字符的大写与小写的转换”,在日常操作中,相信很多人在Python字符串中字符的大写与小写的转换问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python字符串中字符的大写...
    99+
    2023-06-17
  • python学习之字符串转换
    配置环境:python 3.6   python编辑器:pycharm 代码如下: #!/usr/bin/env python #-*- coding: utf-8 -*- def strCase(): "字符串大小写转换" ...
    99+
    2023-01-30
    字符串 python
  • python字符串怎么转换为数字
    要将一个字符串转换为数字,可以使用以下方法: 使用`int()`函数将字符串转换为整数。例如:`num = int("123")...
    99+
    2023-10-25
    python
  • python中json和字符编码的转换
    json是用来转换python object 和json format 的,字符编码有gb2312,gb18030/gbk,utf-8等。在 Python 中出现的 str 都是用字符集编码的 ansi 字符串。Python 本身并不知道 ...
    99+
    2023-01-31
    字符 python json
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作