2025年字符串转换编码格式(字符串转换汉字)

字符串转换编码格式(字符串转换汉字)p 随着信息技术的发展 各国的文字都需要进行编码 于是相继出现了 GBK GB2312 UTF 8 编码等 其中 GBK 和 GB2312 是我国制定的中文编码标准 规定英文字符母占用 1 个字节 中文字符占用 2 个字节 p 而 UTF 8

大家好,我是讯享网,很高兴认识大家。



 <p>随着信息技术的发展&#xff0c;各国的文字都需要进行编码&#xff0c;于是相继出现了 GBK、GB2312、UTF-8 编码等&#xff0c;其中 GBK 和 GB2312 是我国制定的中文编码标准&#xff0c;规定英文字符母占用 1 个字节&#xff0c;中文字符占用 2 个字节。</p> 

讯享网


讯享网

而 UTF-8 是国际通过的编码格式,它包含了全世界所有国家需要用到的字符,其规定英文字符占用 1 个字节,中文字符占用 3 个字节。

Python 3.x 默认采用 UTF-8 编码格式,有效地解决了中文乱码的问题。

在 Python 中,有 2 种常用的字符串类型,分别为 str 和 bytes 类型,其中 str 用来表示 Unicode 字符,bytes 用来表示二进制数据。str 类型和 bytes 类型之间就需要使用 encode() 和 decode() 方法进行转换。

Python encode()方法

encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个过程也称为“编码”。

encode() 方法的语法格式如下:

str.encode([encoding=“utf-8”][,errors=“strict”])

注意:格式中用 [] 括起来的参数为可选参数,也就是说,在使用此方法时,可以使用 [] 中的参数,也可以不使用。

该方法各个参数的含义如表 1 所示。
 

表 1 encode()参数及含义 参数含义str表示要进行转换的字符串。encoding = “utf-8”指定进行编码时采用的字符编码,该选项默认采用 utf-8 编码。例如,如果想使用简体中文,可以设置 gb2312。

当方法中只使用这一个参数时,可以省略前边的“encoding=”,直接写编码格式,例如 str.encode(“UTF-8”)。errors = “strict”指定错误处理方式,其可选择值可以是:

讯享网<ul><li> <p>strict&#xff1a;遇到非法字符就抛出异常。</p> </li><li> <p>ignore&#xff1a;忽略非法字符。</p> </li><li> <p>replace&#xff1a;用“&#xff1f;”替换非法字符。</p> </li><li> <p>xmlcharrefreplace&#xff1a;使用 xml 的字符引用。</p> </li></ul> 该参数的默认值为 strict。</td></tr></tbody></div> 

注意:使用 encode() 方法对原字符串进行编码,不会直接修改原字符串,如果想修改原字符串,需要重新赋值。

【例 1】将 str 类型字符串“C语言中文网”转换成 bytes 类型。

&gt;&gt;&gt; str = “C语言中文网”
&gt;&gt;&gt; str.encode()
b‘Cxe8xafxadxe8xa8x80xe4xb8xadxe6x96x87xe7xbdx91’

此方式默认采用 UTF-8 编码,也可以手动指定其它编码格式,例如:

&gt;&gt;&gt; str = “C语言中文网”
&gt;&gt;&gt; str.encode(‘GBK’)
b‘Cxd3xefxd1xd4xd6xd0xcexc4xcdxf8’

Python decode()方法

和 encode() 方法正好相反,decode() 方法用于将 bytes 类型的二进制数据转换为 str 类型,这个过程也称为“解码”。

decode() 方法的语法格式如下:

bytes.decode([encoding=“utf-8”][,errors=“strict”])

该方法中各参数的含义如表 2 所示。

【例 2】

&gt;&gt;&gt; str = “C语言中文网”
&gt;&gt;&gt; bytes=str.encode()
&gt;&gt;&gt; bytes.decode()
‘C语言中文网’

注意:如果编码时采用的不是默认的 UTF-8 编码,则解码时要选择和编码时一样的格式,否则会抛出异常。

例如:

&gt;&gt;&gt; str = “C语言中文网”
&gt;&gt;&gt; bytes = str.encode(“GBK”)
&gt;&gt;&gt; bytes.decode()  #默认使用 UTF-8 编码,会抛出以下异常
Traceback (most recent call last):
  File “&lt;pyshell#10&gt;”, line 1, in &lt;module&gt;
    bytes.decode()
UnicodeDecodeError: ‘utf-8’ codec can‘t decode byte 0xd3 in position 1: invalid continuation byte
&gt;&gt;&gt; bytes.decode(“GBK”)
’C语言中文网‘

小讯
上一篇 2025-06-08 23:47
下一篇 2025-04-20 21:25

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/180408.html