原来以为Python编源代码头部的#encoding: utf8的字符串对于python的实际编码解析是没有影响的。
但是今天发现一个很好玩的问题。Mark一下。
当python的代码中存在类似u'中文'这样的字符串的时候,假设是utf8编码,本地保存在py文件中的时候,是按照u'\xe4\xb8\xad\xe6\x96\x87'这样的实际本地编码保存的。
如果编码声明字符串是#encoding: utf8。
那么在使用的时候没有任何的影响。
但是如果编码声明字符串的时候使用#encoding: gbk
那么在执行import module的时候,python会尝试利用gbk编码去解析这个u'\xe4\xb8\xad\xe6\x96\x87',运行的结果当然会报错。
SyntaxError: 'gbk' codec can't decode bytes in position 2-3: invalid data (encode.py, line 2)
如果#encoding: utf8,那么这个字符串就会被解析成u'\u4e2d\u6587'。然后就可以像正常unicode字符串一样使用了。
分享到:
相关推荐
需要注意的是,直接指定编码通常不是推荐的做法,更标准的做法是在文件开头添加编码声明,或者在保存源代码文件时使用对应的编码。在Python 3中,Unicode是字符串的默认类型,上述编码问题通常不会出现。 总结一下...
标签中提到的"源代码",意味着可能在文档中涉及到如何在Python代码中创建和操作字符串,以及与编码相关的实践示例。"计算机资料"和"学习资料"则表明这是一份适合初学者或者需要巩固基础知识的开发者的学习资源。同时...
"这样的中文字符串会以UTF-8编码的形式出现在JSON字符串中。 如果你需要自定义编码规则,例如处理嵌套的复杂对象或自定义类,可以提供一个序列化函数作为`dumps()`的`default`参数。这样,当遇到不能直接转换的...
在Python编程中,处理字符串编码问题是一项常见的任务。由于历史原因和不同的标准,字符串可能包含多种编码方式,例如ASCII、UTF-8、GB2312等。在处理这些混合编码的字符串时,"Decodify" 工具提供了一个递归的方法...
3. 代码中的字符串处理:在处理包含多种语言的字符串时,需特别注意编码,例如在Python中使用`encode()`和`decode()`函数进行编码转换。 4. I/O操作:在读取或写入文件时,明确指定正确的编码,避免因为默认编码不...
这篇关于“汉字字符串输出首字母源代码”的主题,主要是探讨如何从汉字字符串中提取出每个汉字的首字母,这对于构建拼音索引或者快速查找汉字具有实用价值。在中文环境下,由于汉字的多样性,直接获取首字母并不像...
在给定的压缩包文件“从一个字符串返回特定的字符源代码.zip”中,我们可以推测这可能是一个软件或插件,其功能是帮助用户获取字符串中特定字符的源代码,也就是字符的ASCII值或者Unicode编码。下面我们将深入探讨...
本文档提供了一个详细的 Python 编码规范,涵盖了 Python 语言规则、Python 风格规则、代码编写风格、注释、类、字符串、TODO 注释、导入格式、语句控制、命名等多个方面,对 Python 程序员非常有价值。
2. **字符编码**:在文件的第二行,`# -*- coding: utf-8 -*-` 定义了源代码的字符编码为UTF-8,这是处理多语言字符集的推荐方式。 3. **字符串与数字之间的转换**:使用内置函数 `int()` 可以将字符串转换为整数,...
综合以上分析,这个压缩包中的Python源代码可能是一个实用工具,它演示了如何使用Python有效地从一串字符中提取中文字符,涵盖了多种Python编程基础和文本处理技术,对于学习和应用Python进行文本处理的人员来说具有...
5. **编码字符串**:最后,使用生成的哈夫曼编码,将原始字符串转换为压缩后的哈夫曼编码字符串。为了方便解码,还需要保存字符编码的映射关系,通常是通过字典的形式。 在"数据结构_习题三"这个压缩包中,可能包含...
Python程序完整代码-干货满满,30个Python源代码! 以下是从给定的文件信息中生成的相关知识点: 1. 数制转换:Python中可以使用bin()、oct()、hex()函数分别将十进制数转换为二进制、八进制和十六进制。 2. 字符...
在IT领域,字符串处理是日常开发中的重要环节,特别是在处理包含中文字符的字符串时,由于中文字符占据的字节数量不同于英文字符,因此在截取字符串时需要考虑到不同的编码格式。本文将深入探讨中文字符串截取的底层...
* 编码声明:Python 3.x 中的源代码文件可以包含编码声明,以指定文件的字符编码。 * 显式拼接行:Python 中可以使用反斜杠 `\` 将多行代码拼接成一行。 * 隐式拼接行:Python 中也可以使用圆括号 `()` 将多行代码...
1. **设置文件编码方式**:在Python源代码文件的顶部添加注释来指定文件的编码格式,例如: ```python # -*- coding: utf-8 -*- ``` 这个注释告知Python解释器文件采用UTF-8编码,使得它能够正确解析包含中文...
在编程领域,字符串处理是日常开发中的重要环节,而`split()`函数则是一个常见的字符串操作,用于将一个字符串按照特定的分隔符切分成多个子字符串。在这个场景中,我们关注的是一个名为"pb split()"的自定义字符串...
2. **Python编码**:在Python源代码中,如果没有明确指定编码,Python默认使用ASCII编码。为了改变这个默认设置,可以在文件开头添加一行注释来声明编码,如`# -*- coding: UTF-8 -*-`。另外,也可以通过`sys`模块的...
在Python源代码中直接使用非ASCII字符(如中文)时,如果没有正确的字符编码声明,程序可能会出现乱码或者编码错误。为了确保源代码文件能正确解析中文字符,需要在文件头部添加一个特殊注释来指定文件使用的字符...
FindHardCodedStrings 从XCode项目的源代码中找到硬编码字符串find_strings.py:适用于iOS项目(如果源代码在Objective-C中):Python脚本,在xcode项目的源文件中搜索硬编码的字符串,并将其替换为新文件中的...
- **解决方法**:在源文件中声明编码,确保源代码的编码与声明的编码一致。 #### 四、总结 本文详细介绍了Python中与中文乱码相关的主要问题及其解决方案。通过了解系统默认编码、源文件编码以及如何正确地处理...