计算机中所有内容都是二进制形式存在的.
字符
各种文字和符号.字符是在图形意义上而存在的,因为任何符号都是可视的.
字符集
字符的集合.
字符编码
按照一定的规则,把字符对应到二进制数值的过程.
字符解码
按照一定的规则,把二进制数值对应到字符的过程.
编码与解码是相逆过程.
字符编码转码
字符在计算机中本质上就是一个数值.字符串在计算机中本质上就是一个数值串.
字符转码即把一个数值按照规则转换到另一个数值.
可以假想存在一个映射f:A->B. A,B分别为16进制数的集合.代表字符集编码.f映射为一一映射.即f为一个函数y=f(x).x∈A,y∈B.
映射规则:x按照A字符集编码的规则解码得到字符,然后按照B字符集编码规则将字符编码得到数y.
按照上述映射规则,即可以进行字符转码.
乱码
乱码指的是计算机系统不能显示正确的字符.而显示其他无意义的字符或空白.这样所显示出来的文字统称为乱码.
乱码产生的原因
1.一般是程序错误解码造成的.
例如:
浏览器把GBK码当成是Big5码显示(即数值串要按照GBK解码才能显示原有的信息,但是却按照了Big5解码得到了错误信息).
电子邮件程序把对方传来的邮件错误解码。如果在发送时编码错误,收件者的电邮程序是不能解码的,需要寄件者的电邮程序重新编码再寄。
2.字型档案(font file)不对
3.来源编码错误,或文件受到破坏。
4.一种语言版本的操作系统安装了另外一种语言版本的应用程序,或者应用程序安装的升级补丁的语言版本与应用程序原来安装的语言版本不一致.
5.早期单字节的应用程序在打开双字节语言的文件时不能正确识别文字的分割,在换行的地方把一个字从中分成两段,导致紧接在后面的整个一行全部都是乱码。
6.低版本的应用程序不能识别高版本的程序创建的文件。
Java中字符转码的方法
String(byte[] bytes, String charsetName)
String的一个构造方法.
将bytes数值串按照charsetName的编码规则解码得到一串字符,再将字符按照Unicode编码规则编码得到新的数值串,并返回新的数值串.
说明:Java默认Uncode编码.返回的数值串是Java可直接识别的.即String.
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
String的一个方法.getBytes()方法还有很多重载函数.具体参照JDK文档.
将字符串实际的数值串按照Unicode编码规则解码得到一串字符,再将字符按照charsetName的编码规则解码得到新的数值串,并以byte数组的形式返回新数值串.
分享到:
相关推荐
文档中主要介绍了各类字符集以及相关的字符编码,字符的显示原理,从输入到显现的整个过程,程序中出现的乱码问题以及解决方案
### Java字符集编码乱码详解 #### 一、编码与乱码基础知识 在计算机科学领域,字符集(Character Set)是指一系列符号和电子通信代码的标准集合。每种字符集都有其特定的应用场景和优势。例如,ASCII(American ...
处理Winform应用中的字符串转换乱码问题,关键在于理解字符编码的工作原理并正确地在各个层面使用它。从文件读取到数据展示,每个环节都要确保编码的一致性。通过细心排查和合理设置,乱码问题可以得到有效解决。 ...
JSP 页面中的字符编码方式与乱码解决方法 在 JSP 中,字符编码方式的设置是非常重要的,因为它直接影响着页面的显示效果。如果不正确地设置字符编码方式,可能会出现乱码问题。下面我们将详细介绍 JSP 中的字符编码...
"字符编码过滤器"是一种在J2EE应用程序中常见的解决乱码问题的机制。它通常是一个Servlet Filter,会在HTTP请求到达目标Servlet之前对请求进行预处理,将请求中的字符编码转换为应用程序期望的编码格式。例如,当...
MySQL字符编码及乱码解决方案 · 使用多种字符集来存储字符串 · 使用多种校对规则来比较字符串 · 在同一台服务器, 同一个数据库或甚至在同一个表中使用不同字符集或校对规则来混合字符串 · 允许定义任何级别...
在VB中,当你需要在窗体间传递字符消息时,必须确保字符编码的一致性,否则可能会出现乱码问题。这是因为VB默认使用的是ANSI编码,而在某些情况下,如接收到的是Unicode编码的消息,就需要进行相应的转换。 以下是...
#### 一、理解字符编码与乱码产生的原因 在解决乱码问题之前,我们需要先了解一些基本的概念: 1. **字符编码**:字符编码是计算机表示和存储文本的方式,常见的有ASCII、GBK、UTF-8等。 2. **字符集**:字符集是...
标题提到的“解决gb2312编码导致乱码问题”是一个典型的字符编码问题,它涉及到如何在不同的编码格式之间正确转换,以确保中文字符在传输和显示时的正确性。gb2312是一种较老的中文字符编码标准,主要用于简体中文,...
3. **字符编码与乱码**: 乱码通常是由于字符编码不一致导致的。在Web上,字符编码主要分为ISO-8859-1、GBK、UTF-8等。如果网页内容的编码与浏览器解析时采用的编码不匹配,就会出现乱码。例如,服务器返回的页面是...
- **Unicode**:这是一种国际化的字符编码方案,旨在支持世界上所有语言的字符编码。Unicode提供了统一的字符编码方式,使得不同语言间的文本处理变得更加简单高效。 #### 转换过程中的乱码问题 当我们在不同的...
字符编码是计算机处理文本的关键,尤其在多语言环境中,正确的编码解决方案显得尤为重要。本文主要针对C++编程中遇到的乱码问题,从编码原理、Unicode的意义出发,详细讲解了四个典型场景下的乱码问题及其解决方案。...
Java字符编码监听器是Java Web开发中的一个重要概念,主要用于处理HTTP请求和响应中的字符编码问题。在Java Servlet规范中,提供了`SetCharacterEncodingFilter`这样的过滤器,用于确保请求参数和响应内容的正确编码...
本文将围绕“Java编码与乱码”这一主题展开,探讨字符编码系列的第一部分。 首先,我们需要理解什么是字符编码。字符编码是计算机用于表示文字、符号等字符的方式,它为每个字符分配了一个唯一的数字,使得计算机...
《易语言乱码王国》是一个基于易语言编程的项目,主要关注的是字符编码与乱码问题的处理。在计算机世界中,字符编码是一项基础且重要的技术,它涉及到文本的存储、传输和显示。易语言是一种中国本土开发的、面向初学...
《MySQL字符集与乱码问题分析》一文深入探讨了字符编码的历史背景、技术细节以及在MySQL中的应用,尤其关注解决常见的乱码问题。本文将根据提供的内容摘要,详细阐述其中涉及的关键知识点。 ### 字符集背景知识 ##...
字符编码与解码是计算机科学中的重要概念,尤其在处理文本数据时不可或缺。字符编码是将字符转换为二进制数的过程,以便计算机能够存储、处理和传输这些字符。解码则是相反的过程,即将二进制数转换回可读的字符形式...
字符编码是计算机科学领域中一个基础且重要的概念,它涉及到信息的存储、传输和处理。字符编码定义了如何将文字、符号等字符转换成二进制形式,以便计算机理解和处理。本文将深入探讨字符与编码的概念、发展历史、...
首先,字符编码是一种规则,它定义了每个字符如何与数字(通常是整数)对应。例如,ASCII编码是最基础的字符集,包含了128个字符,包括英文字母、数字、标点符号和控制字符。随着全球化的发展,更复杂的编码如GBK...