当前位置:首页 » 编程语言 » python的编码问题

python的编码问题

发布时间: 2022-05-12 13:19:21

python默认编码问题

编码就是二进制序列和代表的文本字符之间的映射关系。
你说的大多数问题是python2的,python3已经自动解决了,不需要这么麻烦。默认是utf8.
另外平时遇到的编码问题,通常又和源码本身的编码、系统终端显示的编码、字体纠结在一起,要考虑的因素挺多的。
个人认为理解编码最好的方法是尝试用写二进制序列的方法,输出你想要的文本,多试错就理解了。

❷ python编码的问题

ot=os.listdir("F:")
printot

测试了下上面这两条语句,中文命名的文件夹列表显示如下:

['xd2xf4xc0xd6', 'xcdxbcxc6xac']


这不叫乱码,只是以utf-8编码表示中文字符串。你的本意是想要得到['abc', 'bcd', '音乐', '图片']这种形式的输出,但是实际显示却是utf-8编码。

假设我们创建一个列表 ot = ['abc', 'bcd', '音乐', '图片'],并且文件开头定义了以utf-8格式进行编码。那么在内存里列表对象ot存储的是'abc', 'bcd', 'xd2xf4xc0xd6', 'xcdxbcxc6xac'这四个值。


  1. 为什么英文字符还是英文,中文字符就变成“乱码”了呢?因为计算机不是人,它是看不懂'音乐'和'图片'这几个汉字字符的,它只认识字符的编码值。对于多种编码来说,键盘上那些英文字符编码值都是一样的。中文则不一样。


  2. 为什么打印字符串显示出了中文,打印列表的时候显示的却是utf-8编码?print 的作用是把计算机可理解的对象以人类可以理解的方式打印出来,具体显示结果跟你要打印的对象有关,打印的是字符串,显示的就是人类语言表示的字符串对象,打印的是列表,显示的就是列表对象本身,也即该列表里存储的值。


printot表示打印一个列表对象ot,打印的是列表本身,所以它里面的项以什么形式存储的就以
什么形式显示。

❸ Python 源程序编码注意事项

默认情况下,Python 源文件是 UTF-8 编码。在此编码下,全世界大多数语言的字符可以同时用在字符串、标识符和注释中 — 尽管 Python 标准库仅使用 ASCII 字符作为标识符,这只是任何可移植代码应该遵守的约定。如果要正确的显示所有的字符,你的编辑器必须能识别出文件是 UTF-8 编码,并且它使用的字体能支持文件中所有的字符。
你也可以为源文件制定不同的字符编码。为此,在 #! 行(首行)后插入至少一行特殊的注释行来定义源文件的编码:
# -*- coding: encoding -*-
通过此声明,源文件中所有的东西都会被当作用 encoding 指代的 UTF-8 编码对待。在 Python 库参考手册 codecs 一节中你可以找到一张可用的编码列表。
例如,如果你的编辑器不支持 UTF-8 编码的文件,但支持像 Windows-1252 的其他一些编码,你可以定义:
# -*- coding: cp-1252 -*-
这样就可以在源文件中使用 Windows-1252 字符集中的所有字符了。这个特殊的编码注释必须在文件中的 第一或第二 行定义。

❹ python的编码问题,一个小例子让人很困惑

其实,字典中的uxxxx或者x..之类 就是utf-8编码,经过解码就是汉字了


print 打印的字符是自动解码的。(根据第一行的 coding:utf-8)

print 打印的字典、列表之类的对象,一般没经过解码


如果你要输出解码的汉字,处理方法:

一,对每个scrapy抓取的数据都进行for循环decod

a={1:"你好",2:"谢谢",3:"对不起",4:"hi"}
forkina.keys():
printk,a[k].decode("utf-8")


二,使用json.mps

a={1:"你好",2:"谢谢",3:"对不起",4:"hi"}
importjson
printjson.mps(a,encoding='UTF-8',ensure_ascii=False)

❺ python的参数编码问题,应该怎么改

对于name.get_keyphrases()方法,name(也就是代码中的tr4s)这个参数不能是字符(str),只能是integer 或bytes-like

❻ python文件编码问题

还真有些弄不明白。不过我就明白的给你说。

  1. 不要用记事本,另存改变编码,除非你目标编码是ANSI

  2. 只要是文字都是字符编码,不可能是内存中的编码格式。WINDOWS使用MBCK(类似这个名子)的内部编码。就是多字节编码的方式存在内存里。但是存在文件里一定是字符串,一定是正式的国际编码。

  3. ANSI是操作系统内的标准编码。对于通常来说就是GB18030

  4. unicode有很多编码方式。包括utf-8,utf-16, big-5, gbk, gb18030等。所以这里微软说的unicode估计是给微软程序做序列化用的格式

  5. unicode big endian同上。这个编码应该是一个长字节编码用的。


顺便说一下,微软记事本的UTF-8编码文件有问题,前面有1-2个字节的识别用字符。如果你用python或者是其它操作系统读取文件,可能会出问题。

❼ 新手,求教关于python3编码的问题

你需要明白两个概念:

  1. 什么叫字符串、字节串

    在Python中字符串是指一串可以展示在终端里、供人阅读的字符,至于字符采用什么编码并不重要,同样的文字,可能是用Unicode、UTF-8或GBK编码,但打印在终端中的内容相同,那么就认为是同一串字符串。而字节串是指将字符串通过某种编码转换得到的一串字节,同样一个字符串,使用不同的编码转换后得到的字节串可能完全不同。

  2. 什么叫encode、decode

    encode中文为编码,顾名思义,是将字符串以某种编码形式编码得到字节串的过程;相反,decode中文为解码,是将字节串以某种编码形式翻译得到字符串的过程。

a是一个字符串,它的内容是“周杰伦”这三个字,类型是str;b = a.encode('utf-8')是将a以utf-8形式编码得到的字节串,它的内容是“周杰伦”这三个字的utf-8编码,类型是bytes

❽ Python编码字符串解码问题,怎么解决

在将字符串写入文件时,执行f.write(str),后台总是报错:UnicodeEncodeError: 'ascii' codec can't encode character u'\u6211' in position 0: ordinal not in range(128),即ascii码无法被转换成unicode码。
刚开始我以为Python默认的编码是utf-8,所以使用decode方法和encode方法来进行编码转换,后来怎么也不成功,于是怀疑是否默认编码不是utf-8。
使用下面语句获取python当前的默认编码:
[python] view plain
import sys
print sys.getdefaultencoding()

热点内容
pythonsae 发布:2025-05-10 21:59:30 浏览:964
rdp算法 发布:2025-05-10 21:46:40 浏览:917
c语言求素数的方法 发布:2025-05-10 21:46:39 浏览:764
战地5配置最低怎么设置 发布:2025-05-10 21:44:12 浏览:674
microsoftsql2012 发布:2025-05-10 21:43:33 浏览:428
电脑买个游戏服务器 发布:2025-05-10 21:25:15 浏览:241
机柜存储空间 发布:2025-05-10 21:25:07 浏览:267
安卓手机如何修改首屏 发布:2025-05-10 21:17:59 浏览:959
缓存关联替换 发布:2025-05-10 20:56:34 浏览:618
开源项目源码 发布:2025-05-10 20:56:24 浏览:36