- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一些需要同时使用 Py2.7 和 Py3.7+ 的代码。
我需要使用 UTF-8 编码将文本写入文件。我的代码如下所示:
import six
...
content = ...
if isinstance(content, six.string_types):
content = content.encode(encoding='utf-8', errors='strict')
# write 'content' to file
以上,content.encode()
是否可以从 Py2.7 或 Py3.7+ 引发 UnicodeError
?我想不出这是可能的场景。我不是 Python 专家,所以我认为一定存在边缘情况。
以下是我认为它永远不会引发 UnicodeError
的原因:
six.string_types
涵盖三种类型:Py2.7 str
& unicode
, Py3.7+ str
最佳答案
是的,这是可能的:
import six
content = ''.join(map(chr, range(0x110000)))
if isinstance(content, six.string_types):
content = content.encode(encoding='utf-8', errors='strict')
结果(Try it online!,使用 Python 3.7.4):
Traceback (most recent call last):
File ".code.tio", line 5, in <module>
content = content.encode(encoding='utf-8', errors='strict')
UnicodeEncodeError: 'utf-8' codec can't encode characters in position 55296-57343: surrogates not allowed
而UnicodeEncodeError
是UnicodeError
。
关于python - str.encode(编码 ='utf-8' ,错误 ='strict' )是否有可能引发 UnicodeError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71642549/
我在 set() 中创建并填充了希腊名字,然后将这组值传递给 View 函数。 当我尝试打印这组希腊名字时,它们显示为乱码。我相信这与 Apache mod_wsgi 或 Bottle 不支持 utf
我正在尝试写入文件,但出现以下错误: Traceback (most recent call last): File "/private/var/folders/jv/9_sy0bn10mbdft
在我的代码中,我不断收到此错误... UnicodeEncodeError: 'charmap' codec can't encode character '\u2013' in position 3
我有以下 Python 脚本: # -*- coding: utf-8 -*- import sys, locale locale.setlocale(locale.LC_ALL, 'en_US.ut
如果遇到 unicode 错误,有时很难找到问题的根源。这个字符串是从哪里来的? 有没有办法显示字符串(或部分错误字符串)? 最佳答案 您可以使用此代码段: try: html = html.
def openFile(fileName): try: trainFile = io.open(fileName,"r",encoding = "utf-8") ex
看完后:Dive into Python: Unicode Discussion 我很想尝试在 indic script 中打印我的名字。我正在使用 v2.7.2 - >>> import sys >
我正在尝试显示来自 firebird 3.x 数据库的结果,但得到: File "/...../Envs/pos/lib/python3.6/site-packages/fdb/fbcore.py",
我遇到了 Blockcypher for Python 的严重问题。一个简单的代码片段 import sys from blockcypher import get_address_overview
我正在使用 Django 的国际化功能为 Web 应用程序生成翻译字符串。 在我尝试调用 makemessages 时出现问题,现有语言 .po 文件包含特殊字符(例如 $ , £ 等)。 如果其中之
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2019' in position 26612: Body ('’') is
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2019' in position 26612: Body ('’') is
我正在编写一些需要同时使用 Py2.7 和 Py3.7+ 的代码。 我需要使用 UTF-8 编码将文本写入文件。我的代码如下所示: import six ... content = ... if is
我一直在使用 requests 包的 api 调用突然返回以下错误:“UnicodeError:使用‘idna’编解码器编码失败(UnicodeError:标签为空或太长)” 我不知道如何解决这个问题
import os from azure.storage.blob import BlockBlobService, baseblobservice from django.http import J
我是一名优秀的程序员,十分优秀!