热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

将网页内容编码方式改为gb2312_ASCII、ANSI、GB2312、GBK、UNICODE、UTF8五种编码的简介...

微信公众号:PHP在线【摘要】本文介绍一下ASCII、ANSI、GB2312、GBK、UNICODE、UTF-8这五种编码的区别与联系,有助于大家进一步

微信公众号:PHP在线

【摘要】本文介绍一下 ASCII、ANSI、GB2312、GBK、UNICODE、UTF-8 这五种编码的区别与联系,有助于大家进一步的掌握计算机相关知识与开发的基本理论知识。

一、ASCII 码

ASCII:"American Standard Code for Information Interchange",叫做 "美国信息交换标准码"。所有数据存储在计算机内都是以一个二进制的字符串表达的。每个二进制位(bit)有 0 和 1 两种状态。八个二进制位(bit)成为一个字节 (byte), 从 0000 0000 到 1111 1111 间 ,可以组成 256 种状态。ASCII 码一共规定了 128 个字符的编码,0-9A-Za-z 等等,只占用了一个字节的后 7 位,最前面一位都是 0。即 0000 0000 到 0111 1111 间。

二、ANSI、GB2312、GBK

英文用 128 个符号编码就够了,但是每个国家都有自己的语言,法语、日语、中文简体、中文繁体等等,在现有的 ASCII 码表中是无法表示出来的。对于中文简体电脑系统中,咱们国家标准总局发布了 GB2312 ,即扩展了 ASCII 码,最后出现了 GB2312、GBK 等,GB2312 是简体中文的码,GBK:支持简体中文及繁体中文、兼容 GB2312 编码,BIG5 是支持繁体中文。GB2312 使用两个字节来存储一个汉字的,这样就可以存储较多的汉字了,这里就不详谈 GB2312 的编码方式了,但是要记住一点,GB2312、GBK 与 Unicode 和 UTF-8 是没有关联的,这是咱们国家自己定义的标准。当然除了中文简体系统,还有日文系统 Shift_JIS ,韩文系统 EUC_KR,法文系统等等不同国家自己对于 ASCII 码的扩展,都是基于 ASCII 采用一个、两个或者三个字节的扩充,这里不详谈。然后我们就使用 ANSI 来对 GB2312,GBK,Shift_JIS,EUC_KR 进行一个统称,即指不同国家对 ASCII 编码的扩展,成为 ANSI 。这样在中文简体电脑系统下 ANSI 默认指的是 GB2312,在繁体系统下默认是采用 BIG5 编码,在日文电脑系统中 ANSI 默认是 Shift_JIS 编码,韩文就是 EUC_KR。不同国家的不同 ANSI 编码是互补兼容的,相互独立的。

三、UNICODE、UTF-8

每个国家都有自己的编码,就会造成一个问题就是同一个二进制数在不同的编码下可能对应着不同的符号。因此,想要打开一个文本文件,若它在日文系统中 ANSI 编码是 Shift_JIS ,将它拷贝到中文简体系统中,也使用 ANSI 编码打开,就会出现乱码,原因是中文简体系统中的 ANSI 编码是 GB2312 ,对于日文编码是无法识别的,无法找到对应的符号,所以出现乱码。这样的话,Shift_JIS 编码的文件就只能在日文系统下正常打开。为了能够实现不同国家编码能够在不同系统下互通,于是乎就出现了 UNICODE 符号集 和 UTF-8 编码。UNICODE 称为统一码或者万国码 。UNICODE 不是一种编码方式,而是一个符号集合,规定了全世界每个符号对应的二进制数,这一个全球范围内的统一。而 UTF-8 就是 UNICODE 的实现方式之一。UTF-8 编码的最大特点是,它是可变长编码方式,它可以使用 1-4 个字节表示一个符号。编码方式如下:(1)对于单字节,UTF-8 编码与 ASCII 码是一样的。(2)对于 n 字节编码(n = 2,3,4),如下图所示,即将符号对应的二进制码从右到左对 xxx 符号进行替换,位数不够,则用 0 替换。当然 UNICODE 的实现方式还有 UTF-16 等等,具体我也不清楚是什么编码方式,也不用去了解。

44ac6a6f51890eb9ffdc48affae6e816.png

四、编码的转换

通过万国码 UNICODE 可以实现编码之间的转换:ANSI 转 UTF-8 :先将 ANSI 转换为 Unicode ,然后将 Unicode 转换为 UTF-8;UTF-8 转 ANSI : 先将 UTF-8 转为 Unicode,然后将 Unicode 转为 ANSI。这样我们就可以将不同的 ANSI 进行相互转换喽。
版权归 马富天PHP博客 所有
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

9a4584acde80007a2dcefd65d484dd8f.png




推荐阅读
  • 转自:http:www.phpweblog.netfuyongjiearchive200903116374.html一直对字符的各种编码方式懵懵懂懂,什 ... [详细]
  • 本文总结了解决python文件读写乱码问题的方法。其中包括错误的打开方式和正确的打开方式,并提供了相应的代码示例。建议在进行写入操作后先将文件关闭,然后再打开,最后再读取文件。若文件编码是utf-8,则需要在读取文件时添加decode('utf-8')。这样操作可以避免在打开记事本时出现乱码问题。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 1关于字符串相邻的两个或多个字符串字面值(引号引起来的字符)将会自动连接到一起:str_catpython!str_cat输出:python!把很长 ... [详细]
  • LINUX运行谷歌TTS,中文TTS 的简单实现(基于linux)之 语音库的实现
    语音库保存着常用汉字的发音(多音的汉字只记录其一种发音,这也是本系统的一个缺陷,需要以后完善),所以先要得到一汉字集,这个汉 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 本文由编程笔记#小编整理,主要介绍了关于数论相关的知识,包括数论的算法和百度百科的链接。文章还介绍了欧几里得算法、辗转相除法、gcd、lcm和扩展欧几里得算法的使用方法。此外,文章还提到了数论在求解不定方程、模线性方程和乘法逆元方面的应用。摘要长度:184字。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
author-avatar
逢源堂_344
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有