u''
prefix和之间有什么区别unicode()
?
# -*- coding: utf-8 -*-
print u'上午' # this works
print unicode('上午', errors='ignore') # this works but print out nothing
print unicode('上午') # error
对于第三个print
错误,错误显示:UnicodeDecodeError:’ascii’编解码器无法解码位置0的字节0xe4
如果我有一个包含非ASCII字符的文本文件,例如“上午”,如何阅读并正确打印出来?
u'..'
是一个字符串文字,并根据源编码声明对字符进行解码。
unicode()
是一个将另一种类型转换为unicode
对象的函数,您已为其提供了 字节字符串常量 。它将根据默认的ASCII编解码器解码字节字符串。
因此,您使用了不同类型的文字符号创建了一个字节字符串对象,然后尝试将其转换为unicode()
对象,该操作失败了,因为str
->unicode
转换的默认编解码器为ASCII。
两者是完全不同的野兽。如果要使用后者,则需要为其提供明确的编解码器:
print unicode('上午', 'utf8')
两者的使用方式与使用0xFF
和int('0xFF', 0)
关联的方式相同;前者使用十六进制表示法定义值255的整数,后者使用该int()
函数从字符串中提取整数。
另一种方法是使用str.decode()
方法:
print '上午'.decode('utf8')
除非您知道自己在做什么,否则不要尝试使用错误处理程序(例如ignore'
或'replace'
)。'ignore'
例如,尤其是在选择错误的编解码器时可以掩盖潜在的问题。
您可能需要阅读Python和Unicode:
Ned Batchelder的实用Unicode
每个软件开发人员绝对,肯定必须绝对了解Unicode和字符集(无借口!)作者:Joel Spolsky
在Python的Unicode指南
Unicode和ASCII的确切区别是什么? ASCII总共有128个字符(扩展集中有256个)。 Unicode字符有大小规格吗?
我正在编写Rust by Example教程,其中包含以下代码片段: 我完全混淆了-对于,从返回的迭代器产生引用,从产生值,但对于数组,这些迭代器是相同的? 这两种方法的用例/API是什么?
问题内容: 我在此官方文档中进行了搜索,以查找python中的json.dump()和json.dumps()之间的区别。显然,它们与文件写入选项有关。 但是,它们之间的详细区别是什么?在什么情况下,一个比另一个具有更多的优势? 问题答案: 除了文档所说的内容外,没有什么可添加的。如果要将JSON转储到文件/套接字或其他文件中,则应使用。如果只需要它作为字符串(用于打印,解析或其他操作),则使用(
问题内容: python中的return和break有什么区别?请解释它们在循环和函数中的确切作用?谢谢 问题答案: 用来过早地结束循环,而y是用于将返回值传递回函数调用者的关键字。如果使用时不带参数,则仅终止函数并返回到之前执行代码的位置。 在某些情况下,它们可以实现相同的目的,但以下两个示例可让您大致了解它们的用途 使用 遍历值列表并在我们看到数字时中断。 将产生以下输出 使用 这是函数在根据
本文向大家介绍PHP中的'@'前缀有什么作用?,包括了PHP中的'@'前缀有什么作用?的使用技巧和注意事项,需要的朋友参考一下 “ @”符号可防止错误显示在屏幕上。 PHP支持错误控制运算符,即符号(@)。在PHP表达式之前添加该表达式时,将忽略使用该表达式时可能生成的错误消息。 如果启用track_errors属性,则表达式生成的错误消息将保存在名为$php_errormsg的变量中。每次发生错
问题内容: 和有什么区别? 问题答案: 区别在于中不存在,而确实存在。实际上,已将旧名称重命名为,而旧名称已消失,但可以使用轻松地对其进行模拟)。(请记住这是邪恶的。如果可能,请尝试使用更安全的方法来解析输入。
问题内容: 和Python 3有什么区别? 问题答案: 区别在于Python 3.x中不存在,而确实存在。实际上,已将旧名称重命名为,而旧名称已消失,但可以使用轻松地对其进行模拟)。(请记住这是不好的。如果可能,请尝试使用更安全的方法来解析你的输入。) 不同之处在于,Python 3 .x中不存在,而输入()则不存在。实际上,旧的已重命名为input(),旧的已不复存在,但可以使用轻松模拟。(记住
问题内容: 在Python 2中,返回浮点值。尽管对我而言并不明显,但我发现了一些解释,以阐明为什么使用return float可能有用(对于诸如和的情况)。 但是,在Python 3中,返回整数(并为前面提到的特殊情况返回溢出错误)。 那么和现在之间有什么区别(如果有)? 问题答案: 几轮 下来 。 截断 。使用负数时,区别很明显: 四舍五入为负数表示它们从0移开,被截断将其移近0。 换句话说,