草庐IT

utf8Bytes

全部标签

python - 使用 pure & pythonic 库将 Unicode/UTF-8 字符串转换为小写/大写

我使用GoogleAppEngine,不能使用任何C/C++扩展,只能使用纯pythonic库将Unicode/UTF-8字符串转换为小写/大写。str.lower()和string.lowercase()不会。 最佳答案 以UTF-8编码的str和unicode是两种不同的类型。不要使用string,在unicode对象上使用适当的方法:>>>printu'ĉ'.upper()Ĉ使用前将str解码为unicode:>>>print'ĉ'.decode('utf-8').upper()Ĉ

python - 类型错误 : Object of type 'bytes' is not JSON serializable

我刚开始编程Python。我想用scrapy创建一个bot,结果显示类型错误:当我运行项目时,“字节”类型的对象不是JSON可序列化的。importjsonimportcodecsclassW3SchoolPipeline(object):def__init__(self):self.file=codecs.open('w3school_data_utf8.json','wb',encoding='utf-8')defprocess_item(self,item,spider):line=json.dumps(dict(item))+'\n'#printlineself.file.wr

python - 缠绕上传类型错误 : expected string or bytes-like object

有没有人在尝试上传包时遇到这样的错误?$twineuploaddist/*Uploadingdistributionstohttps://upload.pypi.org/legacy/Enteryourusername:MyUsernameEnteryourpassword:********TypeError:expectedstringorbytes-likeobject编辑:再次遇到同样的错误,但这次为了修复它,我升级了twine,它又开始工作了。 最佳答案 更新twine解决了我的问题。为此,在执行twineuploaddis

python - 在python中将unicode代码点转换为UTF8 hex

我想将从文件中读取的一些unicode代码点转换为它们的UTF8编码。例如,我想将字符串'FD9B'转换为字符串'EFB69B'。我可以像这样使用字符串文字手动执行此操作:u'\uFD9B'.encode('utf-8')但我不知道如何以编程方式进行。 最佳答案 使用内置函数chr()将数字转换为字符,然后对其进行编码:>>>chr(int('fd9b',16)).encode('utf-8')'\xef\xb6\x9b'这是字符串本身。如果您希望字符串为ASCII十六进制,则需要使用hex(ord(c))或类似方法遍历并将每个字符

python - 完全等同于 `b' .. .'.decode("utf- 8", "backslashreplace")` in Python 2

在Python3.5+中,.decode("utf-8","backslashreplace")是处理部分Unicode、部分未知遗留编码二进制字符串的一个很好的选择.有效的UTF-8序列将被解码,无效的序列将被保留为转义序列。例如>>>print(b'\xc2\xa1\xa1'.decode("utf-8","backslashreplace"))¡\xa1这失去了b'\xc2\xa1\xa1'和b'\xc2\xa1\\xa1'之间的区别,但是如果你在“只要给我一些不太有损的东西,我以后可以手动修复”的心态,这可能没问题。但是,这是Python3.5中的新功能。我正在处理的程序还需要

python - 完全等同于 `b' .. .'.decode("utf- 8", "backslashreplace")` in Python 2

在Python3.5+中,.decode("utf-8","backslashreplace")是处理部分Unicode、部分未知遗留编码二进制字符串的一个很好的选择.有效的UTF-8序列将被解码,无效的序列将被保留为转义序列。例如>>>print(b'\xc2\xa1\xa1'.decode("utf-8","backslashreplace"))¡\xa1这失去了b'\xc2\xa1\xa1'和b'\xc2\xa1\\xa1'之间的区别,但是如果你在“只要给我一些不太有损的东西,我以后可以手动修复”的心态,这可能没问题。但是,这是Python3.5中的新功能。我正在处理的程序还需要

python - 将由随机嵌套内置类型组成的对象中的所有 'bytes' 转换为 'str'

这是我的尝试:defconvert(data):ifisinstance(data,bytes):returndata.decode('ascii')elifisinstance(data,dict):returndict(map(convert,data.items()))elifisinstance(data,tuple):returnmap(convert,data)else:returndata这可以更好地概括和/或提高易读性吗? 最佳答案 不知道速度优化,但我不是if/return/else范式的忠实拥护者,因为它用不必要

python - 将由随机嵌套内置类型组成的对象中的所有 'bytes' 转换为 'str'

这是我的尝试:defconvert(data):ifisinstance(data,bytes):returndata.decode('ascii')elifisinstance(data,dict):returndict(map(convert,data.items()))elifisinstance(data,tuple):returnmap(convert,data)else:returndata这可以更好地概括和/或提高易读性吗? 最佳答案 不知道速度优化,但我不是if/return/else范式的忠实拥护者,因为它用不必要

python - 如何在命令行上处理 utf8(使用 Perl 或 Python)?

如何在命令行上使用Perl(或Python)处理utf8?例如,我正在尝试拆分每个单词中的字符。这对于非utf8文本非常容易,例如:$echo"abcdef"|perl-ne'my@letters=m/(.)/g;print"@letters\n"'|lessabcdef但是对于utf8它当然不起作用:$echo"одобрениеза"|perl-ne'my@letters=m/(.)/g;print"@letters\n"'|less因为它不知道2字节的字符。最好知道这(即utf8的命令行处理)是如何在Python中完成的。 最佳答案

python - 如何在命令行上处理 utf8(使用 Perl 或 Python)?

如何在命令行上使用Perl(或Python)处理utf8?例如,我正在尝试拆分每个单词中的字符。这对于非utf8文本非常容易,例如:$echo"abcdef"|perl-ne'my@letters=m/(.)/g;print"@letters\n"'|lessabcdef但是对于utf8它当然不起作用:$echo"одобрениеза"|perl-ne'my@letters=m/(.)/g;print"@letters\n"'|less因为它不知道2字节的字符。最好知道这(即utf8的命令行处理)是如何在Python中完成的。 最佳答案