• 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

  • 相关阅读:
    Spring之Bean的自动装配
    安卓开发Android studio学习笔记14:用户注册登录(案例演示)
    OpenCV C++ Look Up Table(查找表)
    2023华为杯数学建模竞赛E题
    vue中screenfull组件实现全屏和非全屏+怎么给页面全屏加一张图片且不需要设置js获取页面高度
    【SwiftUI模块】0003、SwiftUI搭建瀑布流-交错网格
    MySQL 中 WHERE 和 HAVING 的区别
    C++ Tutorials: C++ Language: Other language features: Preprocessor directives
    vue基础知识和原理(一)
    Vue 嵌套路由 多级路由规则
  • 原文地址:https://blog.csdn.net/qq_56402474/article/details/127828287