如何使用python将ascii字符更改为utf-8?

it_*_*ure -3 python encoding ascii utf-8 python-3.x

A9在ascii表中代表©,如何A9在asthon中将ascii编码更改为utf-8编码?将asii编码改为utf-8的规则是什么?

Mar*_*ers 11

任何给定的ASCII码点都等于该码点的UTF-8编码.这是故意的.

但是,©不是ASCII码点,而是Latin-1码点.ASCII是7位标准,代码点从00到7F运行.除此之外,Latin 1(ISO-8859-1)从U + 0080运行到U + 00FF,每个代码点需要2个UTF-8字节进行编码.

只需从Latin 1解码,编码为UTF-8:

>>> b'\xA9'.decode('latin1').encode('utf8')
b'\xc2\xa9'
Run Code Online (Sandbox Code Playgroud)

至于UTF-8的"规则",最好在UTF-8维基百科文章中解释.

对于其值适合单个字节的Latin-1代码点,规则很简单:前2位(10或者11)形成第一个字节的低两位,以及110000高位.代码点的低6位10作为高位给出.

A9,或者10101001成为11000010 10101001C2 A9:

       10 101001   Latin-1 codepoint A9
       .. ------
       /     \
11000010 10101001  UTF-8 encoding C2 A9
      ..   ------
Run Code Online (Sandbox Code Playgroud)