`
kimmking
  • 浏览: 543650 次
  • 性别: Icon_minigender_1
  • 来自: 中华大丈夫学院
社区版块
存档分类
最新评论

编码和字符集: 乱码的根源和常见的处理方式

XML 
阅读更多
总的来说,编码和字符集,就像方言和字典。
常用的unicode字符集,就是一个大字典。
字符串作为一个string的时候,一般都是用内码表示,没有乱码问题。
当String向外传输的时候,需要转换成byte[],使用不同的编码方式,结果的byte数组是不同的。拿到byte[]的人,需要还原为string,如果不知道其编码,就可能出现乱码问题。所以,byte[]转String时,是乱码出现的关键,此时必须知道byte的编码。
有两个常用的处理方式:数据头部里指定编码、转换成编码无关的格式(一般使用不会乱码的ASCII字符集的一个子集)。
对于前一种方式: http中,我们通过request/response头部,明确的制定body中二进制内容的编码。utf-8的文本文件中的bom头。xml文件更严格,要求xml头和文件本身编码一致。
对于后一种方式:比如URLencode,按unicode字符集内码的编号(整数),再转成16进制,再每两位加%,htmlencode除了escape的字符外,也是%u内码。base64取了64个可显示的ASCII字符做底。
2
1
分享到:
评论
2 楼 dietime1943 2012-03-09  
zhangyou1010 写道
tomcat下,一般怎么处理编码问题呢?

你说的就好比 object应该去实例什么一样
1 楼 zhangyou1010 2011-06-24  
tomcat下,一般怎么处理编码问题呢?

相关推荐

    中英文字符转换解决乱码问题

    本文将深入探讨如何通过字符转换来解决常见的乱码问题,以及一个具体的Java代码示例,该示例展示了如何使用Base64编码来处理字节序列。 ### 中英文字符转换解决乱码问题 #### 1. 乱码问题根源 乱码通常发生在字符...

    解决Mysql数据库在web开发中乱码问题

    在计算机系统中,每个字符都有一个对应的编码,而不同的字符集意味着不同的编码方式。当数据在不同系统或环境中传输时,如果字符集设置不一致,就可能导致乱码现象。 在Web开发中,数据流经多个环节:客户端输入、...

    解决中文乱码问题专题

    本专题将深入探讨中文乱码问题的成因、解决方案以及预防措施,旨在帮助初学者更好地理解和处理这类问题。 一、中文乱码的产生原因 1. 字符编码不一致:不同的系统或软件可能采用不同的字符编码标准,如GBK、GB2312...

    java中文乱码字符集解决大全

    ### Java中文乱码字符集解决大全 #### 一、引言与背景 随着信息技术的全球化发展,越来越多的应用程序需要处理多种语言文字,特别是在中文环境中,如何确保Java程序能够正确地处理中文字符,避免出现乱码问题,...

    一次性解决中文乱码问题

    乱码通常发生在计算机系统处理字符编码不一致的情况下,即数据的输入、存储和显示使用了不同的字符集。中文字符集主要有GBK、GB2312、UTF-8等,如果它们之间不匹配,就会导致字符无法正确显示,出现乱码现象。 1. *...

    系统中文乱码解决方案

    中文乱码问题的根源在于字符集不一致导致的数据解释错误。通过以上介绍的方法,可以有效地解决数据库、服务器、工程以及程序层面的乱码问题。开发者应该确保在整个系统的每个环节都采用相同的字符集,从而避免乱码的...

    彻底解决中文乱码的问题

    3. 数据库操作:在JDBC连接数据库时,通过URL参数`useUnicode=true&characterEncoding=utf8`指定数据库的字符集。 4. 控制台输出:Java默认的控制台编码可能不支持中文,可以通过修改系统环境变量`JAVA_TOOL_...

    oracle数据库乱码问题解决

    3. **应用程序编码问题**:部分应用程序在处理字符串时,如果没有正确地指定字符集,也可能导致乱码。 4. **数据库初始化参数设置不当**:例如`NLS_LANG`等参数设置不正确,会导致数据导入导出时出现乱码。 #### 三...

    解决sql anywhere 11 汉字乱码问题

    你需要确保数据库的字符集设置为能够处理Unicode字符的编码,如UTF-8,以便容纳中文字符。 2. 连接字符串问题:在C++ Builder中连接SQL Anywhere时,连接字符串中可能未指定正确的字符集。需要在连接字符串中加入如...

    Java环境下Web程序的中文乱码问题与对策.pdf

    Java环境下Web程序的中文乱码问题与对策 Java环境下Web程序的中文乱码问题是指在Java环境...解决Java环境下Web程序的中文乱码问题的关键在于保持数据传输的起点、终点、传输通道上的一致编码和使用统一的字符集标准。

    JAVA常见中文乱码问题解决方法

    Java编程语言在处理中文字符时可能会遇到乱码问题,这主要源于Java的源代码编码、JVM处理class文件以及不同操作系统、数据库系统之间的编码不一致。本文深入剖析了Java中文问题的根源,并提供了相应的解决方案。 一...

    WEB页面乱码研究问题

    #### 二、多种编码机制共存引发的乱码根源 不同的编程语言和平台支持不同的中文编码标准,这正是乱码问题的源头。常见的几种字符编码包括: 1. **ISO8859-1编码**:单字节编码,仅能表示255种字符,主要用于英文,...

    mysql插入记录防止乱码

    在MySQL中,可以通过以下方式设置字符集来避免乱码问题: ```sql -- 设置服务器级别的字符集 SET character_set_server = 'gbk'; SET character_set_database = 'utf8'; -- 设置连接级别的字符集 SET character_...

    javaweb乱码解决方法

    乱码问题的根源在于不同环节(如客户端、服务器、数据库等)对字符集的处理不一致,导致数据在传输过程中被错误地解码。为了解决这一问题,开发者需要在多个层面进行设置,确保数据在各个环节都能被正确处理。以下是...

    import table文件时乱码解决,LOAD外部文件时乱码解决方法.txt

    解决乱码问题的关键在于准确识别数据源的编码格式,并在数据传输和处理的各个环节保持一致的字符集设置。无论是PL/SQL导入表还是LOAD外部文件,提前检查和设置正确的字符集,以及在必要时使用编码转换工具,都是避免...

    hibernate+mysql乱码问题

    例如,`set names gbk` 是MySQL中设置客户端、连接和结果集编码为GBK的命令,而GBK是中文的一个常见编码方式。如果你的数据源是UTF-8编码的,但数据库使用GBK,那么在传输过程中可能会出现乱码。 在Hibernate配置...

    java乱码自己解决的办法

    - **检查数据库**:确保数据库也使用相同的字符集,以避免数据在存储和读取过程中的编码不一致。 - **审查第三方库**:如果使用了第三方库处理文本,需确认其支持所选用的字符编码,必要时进行相应的配置调整。 - **...

    有关pdfbox-1.3.1中Identity-H编码为乱码的解决方法

    在使用PDFBox 1.3.1版本时,可能会遇到一个常见的问题,即当处理包含非ASCII字符(如中文、日文或韩文等)的PDF文件时,可能会出现“Identity-H”编码导致的乱码现象。这是因为PDFBox在解析含有Unicode编码的PDF文档...

    解决MYSQL数据库乱码问题

    通过以上步骤,我们可以全面地了解当前MySQL系统、数据库以及表的字符集配置情况,从而定位乱码问题的根源。 #### 解决方案 一旦确定了乱码的原因,就可以采取相应的措施进行解决: 1. **调整服务器级别的字符集...

    乱码问题深度分析课题划分

    在信息技术领域,数据编码和字符集处理是至关重要的环节,尤其是在全球化的网络环境中,正确处理不同语言和字符集的兼容性问题,避免出现乱码现象,对于保证信息的准确性和用户体验至关重要。本文将深入探讨乱码问题...

Global site tag (gtag.js) - Google Analytics