精华内容
下载资源
问答
  • GB2312:简体中文编码,一个汉字占用2字节,在大陆是主要编码方式。当文章/网页中包含繁体中文、日文、韩文等等时,这些内容可能无法被正确编码。 BIG5:繁体中文编码。主要在台湾地区采用。 GBK:支持简体及繁体中文,...

    中文编码主要有以下四种: 

    GB2312:简体中文编码,一个汉字占用2字节,在大陆是主要编码方式。当文章/网页中包含繁体中文、日文、韩文等等时,这些内容可能无法被正确编码。 

    BIG5:繁体中文编码。主要在台湾地区采用。 

    GBK:支持简体及繁体中文,但对他国非拉丁字母语言还是有问题。 

    UTF-8:Unicode编码的一种。Unicode用一些基本的保留字符制定了三套编码方式,它们分别UTF-8,UTF-16和UTF-32。在UTF-8中,字符是以8位序列来编码的,用一个或几个字节来表示一个字符。这种方式的最大好处,是UTF-8保留了ASCII字符的编码做为它的一部分。UTF-8俗称“万国码”,可以同屏显示多语种,一个汉字占用3字节。为了做到国际化,网页应尽可能采用UTF-8编码。

    当然,处理中文时http头也要改成UTF-8编码的-----加上<meta http-equiv="Content-Type" content="text/html; charset=utf-8">。 

    字符集 
    常用字符集分类 
    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即可得到编码。 
    BIG5字符集 
    作用:统一繁体字编码。 
    位数:使用2个字节表示,表示13053个汉字。 
    范围:高字节从A1到F9,低字节从40到7E,A1到FE。 
    GBK字符集 
    作用:它是GB2312的扩展,加入对繁体字的支持,兼容GB2312。 
    位数:使用2个字节表示,可表示21886个字符。 
    范围:高字节从81到FE,低字节从40到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。 
    UNICODE字符集 
    作用:为世界650种语言进行统一编码,兼容ISO-8859-1。 
    位数:UNICODE字符集有多个编码方式,分别是UTF-8,UTF-16和UTF-32。

     

    按所表示的文字分类

    语言                             字符集                                正式名称

    英语、西欧语                ASCII,ISO-8859-1        MBCS 多字节

    简体中文                      GB2312                          MBCS 多字节

    繁体中文                      BIG5                               MBCS 多字节

    简繁中文                      GBK                                MBCS 多字节

    中文、日文及朝鲜语       GB18030                        MBCS 多字节

    各国语言                      UNICODE,UCS              DBCS 宽字节

    展开全文
  • 一般认为Unicode编码的汉字范围是 /^[\u2E80-\u9FFF]+$/ (11904-40959) ,但是其中很多不是汉字,或者说是可以读的汉字,本文用到的几个字典文件的汉字范围均是 /^[\u4E00-\u9FA5]+$/ ,也就是(19968-40869),...
  • 实现汉字转拼音的常见方案一般是通过ASCII编码表进行对照,或者通过字典库查询,这两个方案的优点是简单,不需要依赖外部程序,但缺点也很明显:无法识别多音字,且需要庞大数据文件支撑,并不完美。 而利用...

    实现汉字转拼音的常见方案一般是通过ASCII编码表进行对照,或者通过字典库查询,这两个方案的优点是简单,不需要依赖外部程序,但缺点也很明显:无法识别多音字,且需要庞大的数据文件支撑,并不完美。

    而利用Windows的IFELanguage接口,配合微软拼音输入法,可以实现拼音的完美识别,包括多音字、以及声调。虽然对于外部程序有依赖,但这基本上是任何一台电脑都具备的条件,这样做出来的程序,可以非常的小巧而功能强大,称得上完美。

    在这里插入图片描述

    工具包下载地址:https://www.alla100.com

    在这里插入图片描述

    展开全文
  • 字符编码的简单总结

    2017-07-03 13:04:40
    常见的几种编码方案 ASCII:最基本的编码方案 GBK:主要用于汉字编码方案,包含汉字和其他字符,与ASCII码向下兼容(从ASCII、GB2312、GBK到GB18030) Unicode:包含所有文字和符号的编码方案,与ASCII...

    在工作中经常接触到各种编码名词,但一直缺少一个系统的了解。在网上搜集相关资料,总结如下:

    1. 最常见的几种编码方案

      1. ASCII:最基本的编码方案

      2. GBK:主要用于汉字的编码方案,包含汉字和其他字符,与ASCII码向下兼容(ASCII、GB2312、GBK到GB18030

      3. Unicode:包含所有文字和符号的编码方案,与ASCII码向下兼容,主要的实现有UTF-8和UTF-16

    2. 明白两个概念:编码方案是指数字到字符的对应关系;编码实现是指将数字映射到具体的编码值,这取决于设定的编码规则,如:

         Unicode编码(16进制) ║ UTF-8 字节流(二进制)

      000000 - 00007F ║ 0xxxxxxx

      000080 - 0007FF ║ 110xxxxx 10xxxxxx

      000800 - 00FFFF ║ 1110xxxx 10xxxxxx 10xxxxxx

      010000 - 10FFFF ║ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

     3.  高低位(大小头)的概念:编码时高位在前,还是低位在前。解决办法是在流或者文件的头部加标志来判断。



    展开全文
  • 字符集与编码

    2020-06-12 19:51:01
    常见的汉字编码方案 GB2312,其全名为《信息交换用汉字编码字符集·基本集》;而 HTML 中的 标签也混用了字符集(charset)和编码的概念。 既然是集合,字符集就会超集和子集。如 1995 年发布的 GBK(《汉字内码...

    字符集和编码

    字符集(Character Set)是字符的集合,定义系统能处理哪些字符;编码(Encoding)则规定这些字符在计算机内部的表示方式。

    这里字符是抽象的概念,编码将其与二进制数据进行映射。由于编码通常依赖于字符集,实践中两者经常是绑定或互指的。常见的汉字编码方案 GB2312,其全名为《信息交换用汉字编码字符集·基本集》;而 HTML 中的 标签也混用了字符集(charset)和编码的概念。

    既然是集合,字符集就会有超集和子集。如 1995 年发布的 GBK(《汉字内码扩展规范》),就是 GB2312 (发布于 1980 年)的超集;而 2000 年发布的 GB18030(《信息技术 中文编码字符集》)又是 GBK 的超集。
    代码页

    代码页就是字符集加上编码。

    Windows 提供了很多代码页选项,用于支持不同的语言文字。每个代码页有一个编号,简体中文对应的编号为 936,其对应的字符集为 GBK。你可以在命令行中执行命令reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage /f ACP,查看系统当前设置的代码页编号:

    C:>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage /f ACP

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
    ACP REG_SZ 936

    搜索结束: 找到 1 匹配。

    C:>

    代码页是 Windows 系统的术语。在 Linux 系统中,类似的概念是 locale,不过当前 Linux 一般默认编码方式都是 utf-8,对应的字符集是 Unicode。
    ANSI 编码

    ANSI 编码代表 Windows 系统中当前代码页对应的编码,亦即系统默认编码。

    这个术语经常在 Windows 平台使用,但实际上是被误用的。理论上,它应该等同于 ANSI 在 1986 年发布的 US-ASCII。现实中,它可以代表任意编码,甚至可以与 ASCII 完全不兼容,只要设置为系统默认编码。
    Unicode

    Unicode 是一套标准,包含多语言统一的字符集及其相关编码,以及在这个字符集上进行文本处理的相关规则。

    Unicode 当前版本(12.1)共规定了 137,929 个字符。它们不仅囊括了当前全球使用的主要语言文字(如拉丁字母,阿拉伯文字,简繁汉字等),还包含了很多符号(货币符号,标点符号,数学符号,几何图形,emoji等),甚至还有仅在史料上使用的文字(如楔形文字,埃及象形文字等)。

    在 Unicode 中,每个字符被分配了一个数值(Code Point,代码点)和一个名称。比如字母A的名称是LATIN CAPITAL LETTER A(大写拉丁字母A)。它对应的数值是 65,通常写作 U+0041(41是十六进制数,等于10进制的65)。除此之外,Unicode 还定义了各个字符的一系列属性,比如是否是大写字母,是否代表数字,书写方向(左到右还是右到左),宽度(半角还是全角)等。基于这些属性,Unicode 提供了大小写转换,文本换行,双向书写显示等相关算法。

    Unicode 字符集被分为十七个子集(Plane,平面或位面),每个子集最多可包含 65536 个字符,因此总共可以有 1,114,112 个字符。其中第一个子集(Plane 0)包含最常用的字符,被称为 BMP(Basic Multilingual Plane, 基本多文种平面)。 BMP 中为 UTF-16 中的代理对(Surrogate Pair)保留了 2048 个位置,只剩下 63488 个有效字符空间(因此 Unicode 中实际最多有1,112,064个字符)。BMP 中的字符可以用四位十六进制数(U+xxxx)表示,其它的字符需要五位或更多。
    UTF-8, UTF-16, UTF-32

    这些是 Unicode 标准中规定的几种编码方式。UTF 是 Unicode Transformation Format 的缩写。

    UTF-8 是一种变长编码,以字节为基本单位,单个字符占用的字节数可能是 1 (U+0000 ~ U+007F,128个位置,所有的 ASCII 字符),2(U+0080 ~ U+07FF, 1920个位置,主要是各种字母和符号),3(U+0800 ~ U+FFFF,63488个位置,BMP中所有其它字符,包括绝大部分常用汉字)或4(U+10000 ~ U+10FFFF,1048576个位置,所有其他字符)。 UTF-8 的主要优势在于兼容 ASCII,面向字节因而无需考虑字节顺序。现在 UTF-8 是互联网上使用率最高的编码方式。

    UTF-16 是另一种变长编码,以 16 位(bit)为基本单位,单个字符可占用单位数可能为 1 (BMP 中的所有字符)或 2(所有其它字符,这两个单位被称为代理对)。相对于另外两种编码,它最大的优势是存储大量东亚文本(中日韩)时占用空间较少。由于基本单位不是字节,而是 16 位,不同的系统通信时需要考虑字节序(Byte Order)问题。Windows, JavaScript, Java 等内部使用了 UTF-16。

    UTF-32 (又称 UCS-4) 是一种定长编码,每个字符使用 32 位来表示。它的优势在于实现和处理简单,劣势在于空间效率低。它同样需要考虑字节序问题。

    在 Unicode 标准早期版本中,唯一的编码方式是 16 位定长编码(UCS-2),Windows 和 JavaScript 等采用了这种简单高效的标准。后来 Unicode 字符集扩充,16 位空间不足以容纳所有的字符,不得不产生了 UTF-16 的代理对机制,定长编码尴尬地转变成了变成编码。而 Linux 由于反应较慢,躲过一劫,后来逐渐转向了 UTF-8 编码。
    字节序 (Byte Order)

    不同系统中处理数值时可能采用的大小端序(Endianness)不同。比如在小端序(Little-endian)的机器上,32 位数字 1 在内存中表示为 4 个字节:01 00 00 00;而在大端序(Big-endian)的机器上则表示为 00 00 00 01。常见的 x86/x64, ARM 等处理器架构使用小端序,OpenRISC, SPARC等则使用大端序。不同系统间通信时,或读取其它系统存储的文件时,需要考虑字节顺序问题。

    Unicode 编码中可以使用字符 U+FEFF 来作为字节序标记(Byte Order Mark),需要时在字符序列前添加该字符。该字符本身不被视为文本的一部分,但通过分析它的表示方式,处理程序可以判断编码时的字节序,进而做出相应的处理。U+FEFF 名称为ZERO WIDTH NO-BREAK SPACE(零宽度非间断空白),原本是有实际意义的。后来这个意义被新字符 U+2060 (WORD JOINER) 取代,U+FEFF 现在仅用于标明字节序。
    编码 大端字节序标记 小端字节序标记
    UTF-8 EF BB BF EF BB BF
    UTF-16 FE FF FF FE
    UTF-32 00 00 FE FF FF FE 00 00

    UTF-8 编码的基本单位是字节,无需考虑字节序问题。尽管可以添加字节序标记 EF BB BF(字符 U+FEFF 在 UTF-8 中的表示方式),但标准推荐仅在特殊情况下使用。Windows 下记事本保存为 UTF-8 格式时,会自动添加 BOM,用以与系统默认编码(即记事本所称的 ANSI编码)区分。而 Linux/macOS 等其它操作系统上的软件,一般只支持无字节序标记的 UTF-8 编码文件,这样导致文件交换出现不少问题。 从 Windows 10 v1903 起,记事本也在保存为 UTF-8 编码时默认不附加字节序标记了。
    字素(Grapheme)与字素簇(Grapheme Cluster)

    字素是文本在书写时最小的单位,可以被理解为单独的“字”。

    在 Unicode 标准中,字符(Character)一般指代码点(Code Point)。通常,一个字素就是一个字符。但是,也有些字素是由多个字符序列组合而成的,这样的字符序列被称为字素簇。比如字母 é 可以用字母 e (U+0065) 加上重音符(U+0301) 组合而成。像重音符这样用于修饰前一个字符的字符,被称为组合字符(Combining Character)。可以使用多个组合字符来修饰同一个字符,这就是有一段时间内各个社区很流行的越界文字的技术根源。

    超̷̪͓̫͕̳̝̔͐̋͌͑͗́̒̕͟͞越͓̻̗̙̙̠͖̔̆̌͑͐̽̊代̷͉̘̲̺̤͈̀͑̒͗̄͘̕͜码̵̨̟͖͎̉̿͌͜͞͞͞,越界文字̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗̗
    

    如同前面的例子所示,含重音符的拉丁字母可以使用基本字符加上重音修饰字符来表示。为保持与旧软件系统的兼容性,这种情况下 Unicode 中实际还包含了预先组合好的单个字符。即,某些字素可以有多个表示方式。上面的 é 既可以用字符序列 U+0065 U+0301 表示,也可以用单个 U+00E9 表示。这样也带来了新的问题,在字符串比较,排序等操作前需要首先进行正规化(Normalization)。正规化即把所有可用单个字符表示的字符序列替换为对应的单个字符。
    Collation

    Collation 是字符间的排序规则。在一个 Collation 中,对应字符集里所有的字符都有确定的排序先后关系,因而构成了全序关系。

    文本排序的规则可以有很多,如字母表顺序(Alphabetical order),数值顺序等;针对汉字还有部首笔画顺序等。同一字符,在不同的语言中,所处的排序位置也有可能不同。排序时,还要考虑是否忽略大小写,是否忽略重音/音调等,因此排序规则是很复杂的。Unicode 标准中提供了所有字符的默认的排序规则(Default Unicode Collation Element Table, DUCET),该规则也可根据不同的情况进行定制。开源项目ICU(International Components for Unicode)里提供了各种语言的各种排序规则。
    MySQL 与 UTF-8

    在 MySQL 数据库中,存在多个与 Unicode 相关的字符集和排序规则。

    一般情况下应该使用 utf8mb4 字符集,这才是 MySQL 中真正的UTF-8编码(如第一节所言,这里字符集和编码又一次互指了)。相应的所谓 utf8 字符集是非标准的,其中单个字符最多只能编码为 3 个字节,因此很多字符无法保存。

    MySQL 中排序规则应该使用 utf8mb4_unicode_ci,而不是 utf8mb4_general_ci。后者性能稍微高于前者,但算法不符合 Unicode 标准,可能在处理某些语言文字时出现错误的结果。utf8mb4_unicode_ci对应 Unicode v4.0,较新版本的 MySQL 还同时支持 v5.2(utf8mb4_unicode_520_ci),v9.0(utf8mb4_0900_ai_ci)。

    展开全文
  • 肯定都是乱码,对于这样问题很多,比如strstr,substr等函数都是这样。还好PHP提供了mb_类函数实现不同编码、不同语言之间相互转换等操作。下面是我写PHP字符串翻转函数(mb_类函数需要开启一个mb_...
  • 由于连词在句子中没有具体含义,但交通却起到承上启下、连接词组构成句子作用,因此它们很常见、也很中性和通用。我们把“因为 所以 不但 而且”等最常用连词,每字取各取1码,再加z。熟练之后,非常流畅! ...
  •  异常表示程序运行过程中可能出现非正常状态,运行时异常表示虚拟机通常操作中可能遇到异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生非运行时异常,但是并不要求必须声明抛出未被捕获...
  • 字符串 字符 (内码) 使用Unicode编码方案的 UTF-16 编码,(开发人员 使用是UTF-8,所以当内码转成外码时候默认会以 UTF-8 存储格式来转换(如疑问,具体文章可参考我另外一篇博文。Java 入门之6:...
  • 19、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 90 20.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序...
  • * UNICODE版,更正编译包括GB18030字码表时组词编码错 乱BUG (导出时GB18030字所带组词码是垃圾,不用理会) * 更正SPACE=1时偶尔会锁键盘BUG * 完善汉字上屏编码框同时消失功能,智能检测是否设置 ...
  • * UNICODE版,更正编译包括GB18030字码表时组词编码错 乱BUG (导出时GB18030字所带组词码是垃圾,不用理会) * 更正SPACE=1时偶尔会锁键盘BUG * 完善汉字上屏编码框同时消失功能,智能检测是否设置 “反查...
  • 7.3 常见的未检查型异常 实例162 算数异常 实例163 数组存值异常 实例164 数组下标越界异常 实例165 空指针异常 7.4 常见的已检查型异常 实例166 类未发现异常 实例167 非法访问异常 实例168 文件未发现...
  • 7.3 常见的未检查型异常 实例162 算数异常 实例163 数组存值异常 实例164 数组下标越界异常 实例165 空指针异常 7.4 常见的已检查型异常 实例166 类未发现异常 实例167 非法访问异常 实例168 文件未发现...
  • 7.3 常见的未检查型异常 实例162 算数异常 实例163 数组存值异常 实例164 数组下标越界异常 实例165 空指针异常 7.4 常见的已检查型异常 实例166 类未发现异常 实例167 非法访问异常 实例168 文件未发现...
  • 7.3 常见的未检查型异常 实例162 算数异常 实例163 数组存值异常 实例164 数组下标越界异常 实例165 空指针异常 7.4 常见的已检查型异常 实例166 类未发现异常 实例167 非法访问异常 实例168 文件未发现...
  • 7.3 常见的未检查型异常 实例162 算数异常 实例163 数组存值异常 实例164 数组下标越界异常 实例165 空指针异常 7.4 常见的已检查型异常 实例166 类未发现异常 实例167 非法访问异常 实例168 文件未发现...
  • JSPServlet 中的汉字编码问题 jspservlet中文问题的解决 JSP标签库介绍 JSP传递参数方法 JSP的login程序代码 JSP的mysql_jdbc驱动程序 JSP的内部对象--JSP开发入门四 jsp调用oracle的存储过程 jsp发送邮件...
  • 已知:汉字编码为双字节,其中 参数里涉及指针,就要考虑该指针是不是一个需要修改量,如果是,则参数应采用指向指针指针。 (C语言里参数传递都是传值,是一个拷贝,修改指针,只是改变了拷贝指向,原指针指向...
  • 7.3 常见的未检查型异常 210 实例162 算数异常 210 实例163 数组存值异常 211 实例164 数组下标越界异常 212 实例165 空指针异常 213 7.4 常见的已检查型异常 214 实例166 类未发现异常 214 实例167 非法访问异常 ...
  • 7.3 常见的未检查型异常 210 实例162 算数异常 210 实例163 数组存值异常 211 实例164 数组下标越界异常 212 实例165 空指针异常 213 7.4 常见的已检查型异常 214 实例166 类未发现异常 214 实例167 非法访问异常 ...
  • 7.3 常见的未检查型异常 210 实例162 算数异常 210 实例163 数组存值异常 211 实例164 数组下标越界异常 212 实例165 空指针异常 213 7.4 常见的已检查型异常 214 实例166 类未发现异常 214 实例167 非法访问异常 ...
  • 7.3 常见的未检查型异常 210 实例162 算数异常 210 实例163 数组存值异常 211 实例164 数组下标越界异常 212 实例165 空指针异常 213 7.4 常见的已检查型异常 214 实例166 类未发现异常 214 实例167 非法访问异常 ...
  • 会计理论考试题

    2012-03-07 21:04:40
    8.常见的形码汉字输入技术表形码和五笔字型码。( N ) 9.汉字语音识别输入技术属于音形码汉字输入技术。( N ) 10.计算机的常用输出设备打印机和显示器。(Y ) 11.微机中内存储器指的就是只读存储器(ROM)。...
  • 实例019 巧用位移运算符获取汉字编码值 实例020 使用条件运算符判断指定年份是不是闰年 实例021 使用流程控制语句报销业务花销 2.3 关键字使用 实例022 使用checked关键字处理“溢出”错误 实例023 使用...
  • 实例019 巧用位移运算符获取汉字编码值 实例020 使用条件运算符判断指定年份是不是闰年 实例021 使用流程控制语句报销业务花销 2.3 关键字使用 实例022 使用checked关键字处理“溢出”错误 实例023 使用...
  • 实例019 巧用位移运算符获取汉字编码值 实例020 使用条件运算符判断指定年份是不是闰年 实例021 使用流程控制语句报销业务花销 2.3 关键字使用 实例022 使用checked关键字处理“溢出”错误 实例023 使用...
  • java面试题

    2018-01-01 15:35:15
    但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉半个”。 113 84.8. 将一个键盘输入数字转化成中文输出(例如:输入1234567,输出:一...
  •  实例019 巧用位移运算符获取汉字编码值 24  实例020 使用条件运算符判断指定年份是不是闰年 25  实例021 使用流程控制语句报销业务花销 26 2.3 关键字使用 27  实例022 使用checked关键字处理“溢出”...
  • 实例019 巧用位移运算符获取汉字编码值 24 实例020 使用条件运算符判断指定年份 是不是闰年 25 实例021 使用流程控制语句报销业务花销 26 2.3 关键字使用 27 实例022 使用checked关键字处理溢出错误 27 实例023 ...

空空如也

空空如也

1 2 3
收藏数 57
精华内容 22
关键字:

常见的汉字编码方案有