1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Computer:字符编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介 案例应用(pytho

Computer:字符编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介 案例应用(pytho

时间:2020-09-06 07:36:15

相关推荐

Computer:字符编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介 案例应用(pytho

Computer:字符编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介、案例应用(python中的编码格式及常见编码问题详解)之详细攻略

目录

符串编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介

1、案例理解编码的原理

2、不同编码对比

python中的编码格式及常见编码问题详解

1、查看、设置python默认编码

2、如果默认是ascii编码,输出中文时,肯定出现编码错误

3、解决输出字符串乱码问题

符串编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介

符编码(Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。

在计算机技术发展的早期,如ASCII(1963年)和EBCDIC(1964年)这样的字符集逐渐成为标准。但这些字符集的局限很快就变得明显,于是人们开发了许多方法来扩展它们。对于支持包括东亚CJK字符家族在内的写作系统的要求能支持更大量的字符,并且需要一种系统而不是临时的方法实现这些字符的编码。

1、案例理解编码的原理

在显示器上看见的文字、图片等信息在电脑里面其实并不是我们看见的样子,即使你知道所有信息都存储在硬盘里,把它拆开也看不见里面有任何东西,只有些盘片。

假设,你用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化;凸起的地方代表数字1,凹的地方代表数字0。硬盘只能用0和1来表示所有文字、图片等信息。

那么字母”A”在硬盘上是如何存储的呢?可能小张计算机存储字母”A”是1100001,而小王存储字母”A”是11000010,这样双方交换信息时就会误解。比如小张把1100001发送给小王,小王并不认为1100001是字母”A”,可能认为这是字母”X”,于是小王在用记事本访问存储在硬盘上的1100001时,在屏幕上显示的就是字母”X”。

也就是说,小张和小王使用了不同的编码表。小张用的编码表是ASCII,ASCII编码表把26个字母都一一的对应到二进制1和0上;小王用的编码表可能是EBCDIC,只不过EBCDIC编码与ASCII编码中的字母和01的对应关系不同。

以上源自百度百科:字符编码_百度百科

2、不同编码对比

python中的编码格式及常见编码问题详解

Python2默认的编码是ASCII,而Python3默认的是utf-8。

(1)、Python中字符串类型分为byte string 和 unicode string两种。

(2)、Python进行同时包含 str 与 unicode 的运算时,Python 一律都把 str 转换成 unicode 再运算,当然,运算结果也都是 unicode。由于 Python 事先并不知道 str 的编码,它只能使用 sys.getdefaultencoding() 编码去 decode。

(3)、一般情况下,sys.getdefaultencoding() 的值总是 'ascii' ——显然,如果需要转换的 str 有中文,一定会出现错误。对于这个问题,建议在代码里的中文字符串前写上 u。

(4)、在 Python 3 已经取消了 str,让所有的字符串都是 unicode,这也许是个正确的决定。

1、查看、设置python默认编码

importsys

res = sys.getdefaultencoding() #sys.setdefaultencoding('utf-8')设置默认格式为utf8

print(res)

2、如果默认是ascii编码,输出中文时,肯定出现编码错误

将输出的字符串转为unicode编码,或者格式化为unicode编码,然后输出

my_str=self.lineEdit.text()

self.textBrowser.append(my_str)

print(unicode(self.lineEdit.text()))

my_str=self.lineEdit.text()

self.textBrowser.append(my_str)

print(u'%s'%self.lineEdit.text())

3、解决输出字符串乱码问题

f= open(unicode(my_file),'a+')

f.write(unicode(my_data).encode('utf8'))

Computer:字符编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介 案例应用(python中的编码格式及常见编码问题详解)之详细攻略

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。