编码问题,说是一个小问题,当然不出问题的时间就是没有问题。当出了问题的时候,你才会发现这其实是一个大大问题。
字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识
1. ASCII码
我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。
ASCII码一共规定了128个字符的编码,只占用了一个字节的后面7位,最前面的1位统一规定为0。
2.Unicode码
Unicode码,是一种通用的国际标准。 Unicode给每个字符提供了一个唯一的数字,不论是什么平台、不论是什么程序、不论什么语言。Unicode码指的是UCS-2编码方式,即直接用两个字节存入字符的Unicode码。
值得注意的是,Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。
3. UTF-8
UTF-8就是在互联网上使用最广的一种unicode的实现方式。UTF-8最大的一个特点,就是它是一种变长的编码方式。
1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此
对于英语字母,UTF-8编码和ASCII码是相同的。
2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。
4.GBK
GBK编码也是平时比较常见的编码方式。GBK编码,是微软利用GB 2312-80未使用的编码空间,收录GB 13000.1-93全部字符制定了GBK编码。GB 2312-80只收录6763个汉字,这远远不够收录完几万多的中国汉字的。GBK自身并非国家标准,居然还是微软制定的
。之后中国质量技术监督局于2000年3月17日推出了GB 18030-2000标准,之后又出了 GB18030-2005。ASCII—GB2312—GBK—GB18030他们都是向下兼容的,区分英文编码和中文编码的方法是高字节的最高位不为0,其实GB中文编码都是双字节字符集。
网上查了一下,GB 18030与GBK基本兼容,不是完全兼容。
项目中,我遇见了java操作文本文件的问题,总结了一些知识。
1、如果一个文件只用到了英文,没有中文,不管你用GBK,还是UTF-8去打开文件,都不会有乱码。因为GBK与UTF-8都兼容ASCII。
2、WINDOWS下,记事本、Dreamweaver等编辑器会在文件开头加入BOM信息。
在处理这些文件的时候一定要去掉BOM。
3、不同的操作系统对换行的处理也不同。Unix系统里,每行结尾只有"<换行>",即"\n";Windows系统里面,每行结尾是"<回车><换行>",即"\r\n";Mac系统里,每行结尾是"<回车>"。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
分享到:
相关推荐
本文将详细探讨编码问题中的两大常见编码格式:UTF-8与GBK,并通过具体的设置步骤来解决常见的乱码问题。 #### 二、字符编码概述 字符编码是计算机中表示字符的一种方式,不同的编码系统用于处理不同的字符集。在...
- **使用统一编码**:为了减少乱码问题的发生,建议在项目中尽可能使用统一的编码格式。一般情况下,UTF-8是最常用也是最推荐的选择。 #### 五、总结 通过以上步骤,可以有效地解决log4j中的乱码问题。正确的日志...
2. **显式指定编码**:在进行文件读写、网络通信等操作时,显式指定字符集编码,以避免默认编码带来的乱码问题。 3. **配置JVM和Web容器**:合理配置JVM和Web容器的字符集参数,确保在运行时能够正确地处理各种编码...
总之,解决JavaWeb中的乱码问题需要从多个层面进行考虑:设置过滤器统一请求和响应的编码,确保JSP页面的编码正确,以及在处理文件时注意文件内容的编码。通过这些方式,我们可以有效防止和解决乱码问题,提高应用...
JavaScript作为前端开发的核心技术之一,在处理字符编码方面同样会遇到各种各样的乱码问题。本文将详细介绍JavaScript中常见的乱码现象及其解决方案,帮助开发者更好地理解和解决这类问题。 #### 二、JS乱码问题...
然而,在处理中文字符时,Ajax请求可能会遇到乱码问题,这主要是由于编码格式不一致或者处理不当导致的。本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**...
"乱码问题的解决" 在 Web 开发中,乱码问题是常见的...乱码问题的解决需要从多方面入手,包括设置页面编码、服务器编码、客户端编码、数据库编码和超链接的 url 编码等。只有通过统一编码,才能避免乱码问题的出现。
在编程领域,尤其是在处理文本文件时,文件编码和字符乱码问题是一个常见的挑战。本文将深入探讨如何使用C# 2005解决这些问题。C#是一种强大的编程语言,广泛应用于Windows应用程序开发,包括文件操作。 首先,让...
以上代码片段展示了如何利用Apache Commons IO库来处理中文乱码问题,使得在Java中进行ZIP文件的压缩和解压更加便捷和准确。在实际开发中,根据项目需求,可以选择使用标准库或者Apache Commons IO库,确保文件名和...
然而,当压缩文件包含中文字符时,解压缩过程中可能会遇到乱码问题。这是因为编码格式不匹配或者处理方式不当导致的。本篇文章将深入探讨如何在Android平台上解决Java ZIP库在解压缩中文文件时出现的乱码问题。 ...
如果Web页面和JavaScript文件使用不同的编码,可能会出现乱码问题。本文将分析JavaScript中文乱码问题的原因,并提供相应的解决方案。 一、JavaScript中文乱码问题的原因 在Web开发中,我们经常使用JavaScript文件...
在Struts应用中,中文乱码问题最常见的原因是编码设置不一致。服务器端和客户端之间的数据传输如果使用不同的字符集,就会导致乱码现象。例如,当客户端以UTF-8编码发送请求,而服务器端却以GBK编码接收时,就会出现...
Java中默认使用的是Unicode编码,但在处理外部数据时,如读取文本文件、接收HTTP请求或连接数据库时,如果没有正确设置编码,就可能导致乱码问题。例如,当读取GBK编码的文本文件,而使用UTF-8解码时,会出现乱码。 ...
标题提到的“解决gb2312编码导致乱码问题”是一个典型的字符编码问题,它涉及到如何在不同的编码格式之间正确转换,以确保中文字符在传输和显示时的正确性。gb2312是一种较老的中文字符编码标准,主要用于简体中文,...
在 Java 与数据库之间的乱码问题中,大部分数据库都支持以 unicode 编码方式,所以解决 Java 与数据库之间的乱码问题比较明智的方式是直接使用 unicode 编码与数据库交互。很多数据库驱动自动支持 unicode,如 ...
在使用SAS EG(Enterprise Guide)导入编码为UTF-8的文本数据文件时,用户可能会遇到中文乱码问题。UTF-8编码的文本文件在处理中文字符时,如果没有正确设置编码,可能会导致中文字符显示不正确,即出现乱码现象。...
本文将详细探讨如何使用Java开发这样的客户端,并解决在处理中文字符时可能出现的乱码问题。 首先,让我们了解Java中的Socket编程。在Java中,`java.net.Socket`类提供了TCP/IP套接字功能,可以用于建立客户端到...
4. **表单提交方式引起的编码问题**:不同的表单提交方式(GET与POST)对于编码的处理方式不同,如果不加以处理,也会导致乱码问题。 #### 三、解决中文乱码的具体方法 ##### 1. 数据库配置 - **MySQL数据库配置*...
总的来说,理解和正确使用`contentType`和`pageEncoding`是解决Java Web开发中乱码问题的关键。通过清晰的编码策略和规范的编码实践,可以避免许多不必要的编码困扰,提高项目的稳定性和用户体验。