zoukankan      html  css  js  c++  java
  • 常见字符集&乱码问题

    字符集

    常用字符集分类

    ASCII及其扩展字符集

    作用:表语英语及西欧语言。

    位数:ASCII是用7位表示的,能表示128个字符;其扩展使用8位表示,表示256个字符。

    范围:ASCII从00到7F,扩展从00到FF。

    ISO-8859-1字符集

    作用:扩展ASCII,表示西欧、希腊语等。

    位数:8位, 范围:从00到FF,兼容ASCII字符集。

    GB2312字符集

    作用:国家简体中文字符集,兼容ASCII。

    位数:使用2个字节表示,能表示7445个符号,包括6763个汉字,几乎覆盖所有高频率汉字。

    范围:高字节从A1到F7, 低字节从A1到FE。将高字节和低字节分别加上0XA0即可得到编码。

    GBK字符集

    作用:它是GB2312的扩展,加入对繁体字的支持,兼容GB2312。

    位数:使用2个字节表示,可表示21886个字符。

    范围:高字节从81到FE,低字节从40到FE。

    UNICODE字符集

    作用:为世界650种语言进行统一编码,兼容ISO-8859-1。

    位数:UNICODE字符集有多个编码方式,分别是UTF-8,UTF-16和UTF-32。

    BIG5字符集

    作用:统一繁体字编码。

    位数:使用2个字节表示,表示13053个汉字。

    范围:高字节从A1到F9,低字节从40到7E,A1到FE。

    GB18030字符集

    作用:它解决了中文、日文、朝鲜语等的编码,兼容GBK。

    位数:它采用变字节表示(1 ASCII,2,4字节)。可表示27484个文字。

    范围:1字节从00到7F; 2字节高字节从81到FE,低字节从40到7E和80到FE;4字节第一三字节从81到FE,第二四字节从30到39。

    UCS字符集

    作用:国际标准 ISO 10646 定义了通用字符集 (Universal Character Set)。它是与UNICODE同类的组织,UCS-2和UNICODE兼容。

    位数:它有UCS-2和UCS-4两种格式,分别是2字节和4字节。

    范围:目前,UCS-4只是在UCS-2前面加了0x0000。

    按所表示的文字分类

    语言 字符集  正式名称
    英语、西欧语ASCII ISO-8859-1 MBCS 多字节
    简体中文 GB2312 MBCS 多字节
    繁体中文 BIG5 MBCS 多字节
    简繁中文 GBK MBCS 多字节
    中文、日文及朝鲜语 GB18030 MBCS 多字节
    各国语言 UNICODE,UCS DBCS 宽字节

    编码间的转换:

    要求:要知道当前内容的编码格式和要转换为的编码格式:

    示例:

    String username = request.getParameter("username").trim(); 
    String password = request.getParameter("password").trim();
    

    获取到的String类型变量:username和password的编码格式为:ISO-8859-1   

    如何将他们转换成UTF-8编码,不要出现乱码,代码如下:

    String parameter = request.getParameter("username"); 
    //获取到参数对应的二进制数 
    byte[] temp = parameter.getBytes("iso-8859-1"); 
    //通过对应的二进制数 手动编码成utf-8的字符串 
    String param = new String(temp, "utf-8");
    

     原理:

        相同的内容在计算机中的二进制编码是一样的,所以在不同编码间内容传递时,要想不出现乱码,先将该内容按其原编码转换为二进制序列。然后再将这个二进制序列按照要转换的编码进行翻译,就不会出现乱码。

    出现的乱码形式的含义:

    ??????    --->    代表字符编码不匹配造成

    师龙       --->    代表没有该编码方式

  • 相关阅读:
    【权值分块】bzoj1208 [HNOI2004]宠物收养所
    【权值分块】bzoj1588 [HNOI2002]营业额统计
    【权值分块】bzoj1503 [NOI2004]郁闷的出纳员
    【pb_ds】bzoj1056 [HAOI2008]排名系统 bzoj1862 [Zjoi2006]GameZ游戏排名系统
    【分块】【树状数组】bzoj3744 Gty的妹子序列
    【权值分块】bzoj3685 普通van Emde Boas树
    【权值分块】bzoj3224 Tyvj 1728 普通平衡树
    【搜索】数学组の问题
    【块状链表】AutSky_JadeK的块状链表模板+总结(STL版)
    【DFS】【最短路】【spfa】【BFS】洛谷P2296 NOIP2014提高组 day2 T2 寻找道路
  • 原文地址:https://www.cnblogs.com/aimqqroad-13/p/5759408.html
Copyright © 2011-2022 走看看