当前位置:首页 » 编程语言 » python转GB2312

python转GB2312

发布时间: 2023-01-10 08:15:19

Ⅰ 怎样优雅解决 python 解析 xml gb2312 编码的问题

解决办法:

由于xml协会规定,所有xml解析器均需要支持utf-8和utf-16两种编码而不要求别的编码,所以我估计python提供的xml处理模块就是不支持gb2312的。而windows下的文件,大部分均为gb2312编码的,因此处理的时候,就会带来不方便的地方。

解1:利用UltraEdit等工具,将xml文件转换成UTF-8的,然后encoding="utf-8"即可

Ⅱ python编码转换:ascii和GB2312的问题

供参考。gb312本来就是标准ascii的一种扩充,ascii可以视同为gb312的子集。所以,如果var的值全部是在ascii里面的话,转成gb312后也还是属于ascii,所以使用detect函数的时候,编码还是ascii(当然同时也属于gb312);如果var的值不是全部在ascii里面的话,语句var = var.decode('ascii')可能会出错。
只要var的值是英文(内码0-127),转换不转换,都已经是gb2312编码。

Ⅲ 怎样优雅解决 python 解析 xml gb2312 编码的问题

你以二进制形式读入XML文件,读入到bytes类型对象中,然后bytes.decode传编码参数就能指定二进制数据的编码、转换为python内部使用的utf-8。
bytes.decode(encoding="gb2312")

Ⅳ python gb2312编码问题

使用python进行gb2312编码,遇到如下问题

其中编码错误的汉字是: 别克

经过阅读这篇文章 GBK与GB2312的些许不同 使用gbk进行编码,问题就解决。

再次遇到问题:

这次编码错误的字是:g l 8

Ⅳ Python 编码转换与中文处理

python 中的 unicode 是让人很困惑、比较难以理解的问题. 这篇文章 写的比较好, utf-8是 unicode的一种实现方式,unicode、gbk、gb2312是编码字符集.

Python 默认脚本文件都是 ANSCII 编码的,当文件 中有非 ANSCII 编码范围内的字符的时候就要使用" 编码指示 "来修正一个 mole 的定义中,如果.py文件中包含中文字符(严格的说是含有非anscii字符),则需要在第一行或第二行指定编码声明: # -*- coding=utf-8 -*- 或者 #coding=utf-8
其他的编码如:gbk、gb2312也可以;否则会出现:

先说一下python中的字符串类型,在python中有两种字符串类型,分别是 str 和 unicode ,他们都是basestring的派生类;

在str的文档中有这样的一句话:

也就是说在读取一个文件的内容,或者从网络上读取到内容时,保持的对象为str类型;如果想把一个str转换成特定编码类型,需要把str转为Unicode,然后从unicode转为特定的编码类型如:utf-8、gb2312等。

unicode 转为 gb2312,utf-8等,使用 encode(encoding)

utf-8,GBK转换为 unicode 使用 unicode(s,encoding) 或者 s.decode(encoding)

普通的 str 转为 unicode,

如果直接执行s.encode('gb2312')会发生什么?

这里会发生一个异常:Python 会自动的先将 s 解码为 unicode ,然后再编码成 gb2312。因为解码是python自动进行的,我们没有指明解码方式,python 就会使用 sys.defaultencoding 指明的方式来解码。很多情况下 sys.defaultencoding 是 ANSCII,如果 s 不是这个类型就会出错。
拿上面的情况来说,我的 sys.defaultencoding 是 anscii,而 s 的编码方式和文件的编码方式一致,是 utf8 的,所以出错了:

对于这种情况,我们有两种方法来改正错误:

s = '中文'
s.decode('utf-8').encode('gb2312') ```

import sys
reload(sys) # Python2.5 初始化后会删除 sys.setdefaultencoding 这个方法,我们需要重新载入
sys.setdefaultencoding('utf-8')
str = '中文'
str.encode('gb2312')

print open("Test.txt").read()

import codecs
print open("Test.txt").read().decode("utf-8")

Traceback (most recent call last):
File "ChineseTest.py", line 3, in <mole>
print open("Test.txt").read().decode("utf-8")
UnicodeEncodeError: 'gbk' codec can't encode character u'ufeff' in position 0: illegal multibyte sequence

import codecs
data = open("Test.txt").read()
if data[:3] == codecs.BOM_UTF8:
data = data[3:]
print data.decode("utf-8")

s = "中文"
print unicode(s, "utf-8")

Traceback (most recent call last):
File "ChineseTest.py", line 3, in <mole>
s = unicode(s, "utf-8")
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-1: invalid data

s = "中文"
print unicode(s, "gbk")

s = "中文"
print unicode(s, "cp936")

Ⅵ 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编码就能节省空间。

Ⅶ 怎样优雅解决 python 解析 xml gb2312 编码的问题

优雅不好说,尽量找到一个简单可以重用的办法就可以了。

XML通常都强制要求用UTF-8格式的,如果它是GB18030或者是 GB2312格式,你转换一下就可以了。

当然你可以检测一下它的编码。 如果你没有安装这样的模块,就自己做一个,利用python的编码转换异常,自己做一个自动编码检测。然后反复重用。基本上都是正确的。

在python世界里,尽量远离GB2312。这是通常的规矩。全部的UTF-8,不管是源代码还是配置文件。 到了python3,内部编码是unicode,外部是utf-8

别给自己找麻烦。

Ⅷ python 将汉字 输出GB2312

我用的python3.5 用ascii函数处理

s="中文"
lst=[]
forcins:
lst.append(int('0x'+ascii(c)[3:7],16))

print(lst)

输出是:[20013, 25991]

Ⅸ python字符编码转换

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串转换成gb2312编码。

热点内容
红点角标算法 发布:2025-07-12 12:11:16 浏览:843
开心消消乐服务器繁忙什么情况 发布:2025-07-12 12:11:14 浏览:238
数据库的封锁协议 发布:2025-07-12 12:10:35 浏览:724
如何配置一台长久耐用的电脑 发布:2025-07-12 11:43:03 浏览:601
昆明桃源码头 发布:2025-07-12 11:38:45 浏览:568
大司马脚本挂机 发布:2025-07-12 11:38:35 浏览:458
数据库实时监控 发布:2025-07-12 11:31:33 浏览:743
vb6反编译精灵 发布:2025-07-12 11:23:12 浏览:997
模拟存储示波器 发布:2025-07-12 11:10:58 浏览:814
怎么查看安卓真实运行内存 发布:2025-07-12 11:08:39 浏览:883