发布网友 发布时间:2024-10-03 09:49
共1个回答
热心网友 时间:2024-12-04 20:11
导读:本篇文章首席CTO笔记来给大家介绍有关Python7的unicode编码是多少的相关内容,希望对大家有所帮助,一起来看看吧。
python是什么编码格式python编码总结:
1).首先python有两种格式的字符串,str和unicode,其中unicode相当于字节码那样,可以跨平台使用。
str转化为unicode可以通过unicode(),u,str.decode三种方式
unicode转化为str,如果有中文的话,一般通过encode的方式
2).如果代码中有中文的话,我们一般会添加"#coding=utf-8",这个是什么作用呢,一般如下:
如果代码中有中文注释,就需要此声明比较高级的编辑器(比如我的emacs),会根据头部声明,将此作为代码文件的格式。程序会通过
头部声明,解码初始化u”人生苦短”,这样的unicode对象,(所以头部声明和代码的存储格式要一致
所以,当我们填上编码头的时候,使用s="中文",实际上type(s)是一个str,是已经将unicode以utf-8格式编码成str。
其次,如果我们在代码中使用s=u'中文',相当于将str以utf-8解码成unicode。
推荐学习《python教程》。
python123汉字的unicode编码值python的默认编码是ascii,可以通过sys.setdefaultencoding('utf-8')函数设置python的默认编码。
python中可以通过encode和decode的方式改变数据的编码,比如:
u'汉字'
u'\u6c49\u5b57'
u'汉字'.encode('utf-8')
'\xe6\xb1\x89\xe5\xad\x97'
u'汉字'.encode('utf-8').decode('utf-8')
u'\u6c49\u5b57'
我们可以通过这两个函数设置编码。
那么,python中的str是什么类型?
importbinascii
'汉字'
'\xba\xba\xd7\xd6'
type('汉字')
printbinascii.b2a_hex('汉字')
babad7d6
printbinascii.b2a_hex(u'汉字')
Traceback(mostrecentcalllast):
File"",line1,in
UnicodeEncodeError:'ascii'codeccan'tencodecharactersin
position0-1:ordinalnotinrange(128)
printbinascii.b2a_hex(u'汉字'.encode('utf-8'))
e6b189e5ad97
printbinascii.b2a_hex(u'汉字'.encode('gbk'))
babad7d6
binascii是将数据的二进制转换成ascii,上面的解释是:‘汉字'的类型是str,二进制是babad7d6,u‘汉字'是无法转换成ascii,这样就报出了开头的第一个错误。解决办法就是把它.encode(‘utf-8')成str类型。因为我命令行是windows默认的GBK编码,所有u'汉字'.encode(‘gbk')的时候,输出结果和‘汉字'结果一样。
如何辨认python的编码格式是unicode
Python文件里开头有coding:utf-8,则说明这个Python文件是Unicode编码。
在Python3中字符串是默认使用Unicode的,python2.x则得用u来表示它是Unicode字符串,如a=u“abcdefg”。type函数可以验证
python有哪几种编码方式第一种:ASCII码。是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,它是现今最通用的单字节编码系统,并等同于国际标准IS/IEC
646。
由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机李,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母a的编码是97,后128个称为扩展ASCII码。
第二种:GBK和GB2312。能在计算机中显示中文字符是至关重要的,然而ASCII表里一个偏旁部首都没有,所以我们需要一个关于中文和数字对应的关系表,一个字节只能最多表示256个字符,用处理中文显然一个字节是不够的,所以我们需要采用两个字节来表示,所以中国制定了GB2312编码,用来将中文编写进去。
第三种:Unicode。因为各个国家都有一套自己的编码,所以无法避免冲突,因此Unicode诞生了。它可以把所有语言都统一到一套编码里,这样就不会存在乱码问题了,现代操作系统和大多数编程语言都直接支持Unicode。
第四种:UFT-8。基于节约的原则,出现了把Unicode编码转化为可变长编码的UTF-8编码。而UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成一个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节,如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。
pythonunicode编码pythonunicode编码:
下面的代码创建了一个Unicode字符串,用UTF-8编码器将它编码,然后写入到一个文件中去,接着把数据从文件中读回来,解码成Unicode字符串对象,最后,打印出Unicode字符串,用以确认程序正确地运行。
在Linux中编写,在VIM中输入如下代码,保存为uniFile.py
#?/home/xiaopeng/python/code/uniFile.py
'''
An?example?of?reading?and?writing?Unicode?strings:Writes
a?Unicode?string?to?a?file?in?utf-8?and?reads?it?back?in
'''
CODEC?=?'utf-8'?编码方式
FILE?=?'unicode.txt'?要存的文件名
hello_out?=?u"Hello?world\n"?创建了一个Unicode格式的字符串
bytes_out?=?hello_out.encode(CODEC)?用UTF-8编码
f?=?open(FILE,'w')
f.write(bytes_out)?写入指定文件中
f.close()
f?=?open(FILE,'r')
bytes_in?=?f.read()?读取
f.close()
hello_in?=?bytes_in.decode(CODEC)?解码
print?hello_in?打印
在终端中输入:pythonuniFile.py
结果打印出Helloworld
然后在python目录下会发现多了一个名为unicode.txt的文件,用cat命令查看一下,发现里面的内容和打印的结果一样.
把Unicode应用到实际中注意一下四点:
1?程序中出现字符串时一定要加一个前缀u
2?不要用str()函数,用Unicode()代替
3不要用过时的string模块。如果传给它非ASCII码,它会把一切搞砸。
4不到必须时不要在你的程序里编解码Unicode字符,只在你要写入文件或者数据库或者网络时,才调用encode()函数和decode()函数。
结语:以上就是首席CTO笔记为大家介绍的关于Python7的unicode编码是多少的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。