UTF-8 和 Unicode 编码

在这里采用python语言

1. UTF-8 编码与解码

编码 : str.decode()

"我".encode()

输出

         

文档

  1. 函数声明encode(self, /, encoding='utf-8', errors='strict')
  2. 函数返回:<class 'bytes'> 字节类型
  3. 解码错误:用于处理解码错误的错误处理方案。(默认值:strict)

说明

     默认值是'strict',这意味着解码错误会引发UnicodeDecodeError。

     其他可能的值是'ignore'和'replace'以及任何其他有编解码器注册的名字。

     register_error,可以处理UnicodeDecodeErrors

解码bytes.decode()

b'\xe6\x88\x91'.decode()

输出

         

文档

  1. 函数声明decode(self, /, encoding='utf-8', errors='strict')
  2. 函数返回:<class 'str'> 字符串类型
  3. 解码错误:用于处理解码错误的错误处理方案。(默认值:strict)

说明

     默认值是'strict',这意味着解码错误会引发UnicodeDecodeError。

     其他可能的值是'ignore'、'replace'和'xmlcharrefreplace'以及其他有编解码器注册的名字。

     register_error,可以处理UnicodeDecodeErrors

2. Unicode 编码与解码

编码与解码:调用的函数与utf-8 一样,只是需要传入参数

编码:  

def enUnicode(trans_str):
    """需要转换成unicode编码的字符串"""
    trans_str = trans_str.encode("unicode-escape")
    return_value = str(trans_str)
    return_value = return_value[2:].replace("\\\\u","%")
    return_value = return_value[:-1]
    return return_value

调用该函数

解码:

def deUnicode(trans_str):
    """将unicode编码的字符串重新转换成原来的字符串"""
    return_value = trans_str.encode("unicode-escape")
    return_value = return_value.replace(b'%',b'\\u')
    return_value = return_value.decode("unicode-escape")
    return return_value

调用该函数:

 3. 综合案例(实战)

在网页上我们经常看到 url 地址栏的中文被转换成unicode编码,根据前置知识,我们可以将这些编码转换成中文字符

比如:从百度搜索上的url地址栏获取了一段这样的编码

%5168%90e8%66ff%6362

将其解码(调用函数deUnicode

注意:

  1. 在这里统一采用的unicode-16标准
  2. 如果传入的unicode-8,则会引发异常

     (unicode error) 'unicodeescape' codec can't decode bytes in position 0-3: truncated \uXXXX escape   【不支持unicode-8

posted @ 2022-11-13 11:04  辰梦starDream  阅读(20)  评论(0编辑  收藏  举报  来源