• UTF-8 和 Unicode 编码


    在这里采用python语言

    1. UTF-8 编码与解码

    编码 : str.decode()

    "我".encode()

    输出

             

    文档

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

    说明

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

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

         register_error,可以处理UnicodeDecodeErrors

    2. Unicode 编码与解码

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

    编码:  

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

    调用该函数

    解码:

    1. def deUnicode(trans_str):
    2. """将unicode编码的字符串重新转换成原来的字符串"""
    3. return_value = trans_str.encode("unicode-escape")
    4. return_value = return_value.replace(b'%',b'\\u')
    5. return_value = return_value.decode("unicode-escape")
    6. 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

  • 相关阅读:
    编写函数isprime(int a),用来判断自变量a是否为素数,若是素数,函数返回整数1,否则返回0
    Recurrence relation
    MFC Windows 程序设计[241]之创建多维视图效果(附源码)
    也许是最客观、全面的比较 Rust 与 Go:都想把 Rust 也学一下
    1114: 逆序(数组)
    【Leetcode】383. 赎金信
    DJYGUI系列文章八:GDD绘图系统
    前端设计模式之【代理模式】
    YOLOv5全面解析教程①:网络结构逐行代码解析
    wmware14虚拟机安装麒麟操作系统
  • 原文地址:https://blog.csdn.net/qq_56402474/article/details/127828287