`
todd_liu
  • 浏览: 66052 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

汉字字符编码与转码详解

 
阅读更多
程序中有汉字参数,经常会遇到编码转码问题,总结下:
1.汉字为多字节字符,须多字节编码解码,如"测试".getBytes("gb2312");
这样"测试".getBytes("gb2312")就变成一个byte数组,这时候你可以随意重新指定编码如iso-8859-1,

String s1=new String("测试".getBytes("gb2312"),"iso-8859-1");

编为s1,这是s1就变成一个是iso-8859-1编码的字符串,如果你想重新转为中文,那么,你用什么字符集编码的,必须用什么字符集来解码,这里是iso-8859-1,

可以这么来做



String s2 = new String(s1.getBytes("ISO-8859-1"),"gb2312");

这样s2又重新变回中文了,所以当你打印s2时,就是“测试”。



2.用iso-8859-1做中间编码,原因:
[1]iso-8859-1是单字节字符编码,
[2]ANSI 编码 (如:GB2312, BIG5,Shift_JIS,ISO-8859-2等等),是多字节编码(英文单字节,中文多字节);
[3]UNICODE 编码(UTF-8, UTF-7, UTF-16, UnicodeLittle, UnicodeBig....),是宽字节编码(所有字符均是多字节)
因此用iso-8859-1做中间码,会保持原有字节的秩序,不发生混乱;可以理解为其他的编码对iso-8859-1兼容吧。

因此,我们常常使用 bytes = string.getBytes("iso-8859-1") 坐中间码来进行逆向操作,得到原始的“字节串”。然后再使用正确的
ANSI 编码,比如 string = new String(bytes, "GB2312"),来得到正确的“UNICODE 字符串”。

不信的话可以试试,utf8和gb不能互相转换,只有iso-8859-1做中间码可以完美互相转码!!!


分享到:
评论

相关推荐

    PHP自动识别字符集并完成转码详解

    在处理字符串时,字符编码问题是一项重要任务,尤其是在网络通信和数据交换中。本文将深入讲解如何使用PHP来自动识别字符集并完成转码,确保数据的正确显示和处理。 首先,我们需要理解不同字符编码的基本原理。UTF...

    PHP版 汉字转码的实现详解

    汉字转码通常是指将汉字字符从一种编码格式转换为另一种编码格式的过程。在计算机网络与存储中,字符编码格式的选择至关重要,因为它影响到字符信息的正确存储、传输和处理。由于中文字符集的复杂性,汉字转码在中文...

    关于PHP自动判断字符集并转码的详解

    在Web开发中,字符编码是一个基本且重要的概念,尤其是在处理多种语言文字时,字符编码问题尤为突出。PHP作为广泛应用于服务器端脚本的编程语言,能够有效地处理不同编码之间的转换,以确保网页和数据在不同系统和...

    Discuz模板转码专用工具

    在计算机世界里,字符编码是将文字与数字对应起来的方式,如GBK(国标汉字扩展A区)是一种常见的中文编码,而UTF-8(Unicode Transformation Format - 8位)则是国际通用的多语种编码。当一个网站或论坛的数据库采用...

    js中unicode转码方法详解.docx

    在JS中,Unicode转码主要涉及到字符串的编码和解码过程。 在JS中,Unicode转码主要涉及到以下几种方法: 1. `encodeURI()` 和 `decodeURI()`: 这两个函数用于对URI(统一资源标识符)进行编码和解码。`encodeURI...

    Discuz! X 官方 GBK/UTF8编码转换工具

    GBK编码是中国大陆广泛使用的汉字编码标准,能覆盖大部分中文字符,而UTF8是一种国际化的编码方式,支持全球几乎所有的字符集,包括中文、英文、日文等。在互联网全球化趋势下,UTF8编码因其广泛的兼容性和可扩展性...

    js中unicode转码方法详解

    在JavaScript中,处理Unicode字符以及它们的转码是一个常见需求,特别是对于处理中文和其他语言字符时。...掌握这些知识对于进行国际化编程、处理文本数据,以及理解字符编码的内部工作机制都是十分重要的。

    Android UTF-8转码实例详解

    在Android开发中,字符编码是处理字符串和网络通信时必须考虑的一个重要方面。UTF-8是一种广泛使用的Unicode字符编码方案,它可以表示Unicode字符集中所有的字符。这篇“Android UTF-8转码实例详解”将深入探讨如何...

    中文 Big5/GBK/Unicode/UTF8 内码转换器

    在计算机世界里,字符编码是沟通人类语言与机器之间的重要桥梁。本文将详细讲解标题所提及的“中文 Big5/GBK/Unicode/UTF8 内码转换器”这一工具,以及相关编码标准的基本知识。 首先,我们要理解什么是字符编码。...

    EUC_KR转GB18030表

    ### EUC_KR转GB18030转码表详解 #### 一、引言 在处理不同编码格式的数据时,经常会遇到需要将一种字符集转换为另一种字符集的情况。例如,在处理东亚语言(如韩语)时,可能会遇到需要将EUC-KR编码的数据转换为GB...

    EUC-JP, JIS, Shift-JIS转码

    "EUC-JP, JIS, Shift-JIS 编码转换详解" EUC-JP 是一种用来表示日语汉字的编码方法,主要用在 Unix 系统上。EUC 的全称为 Extended Unix Code,是一种用8位bit来表示字符的方法。EUC-JP 简称 EUC。 JIS 是一种用7...

    Java 和 JavaScript 真正通用的Base64编码详解

    Base64编码是一种在计算机系统中广泛使用的方法,用于将二进制数据转换为由64个可打印字符组成的ASCII字符...同时,要在编码时考虑数据的边界对齐和编码前的字符编码转换,确保整个数据传输和解析流程的正确性和效率。

    GB2312到UNICODE码表

    通过对GB2312到Unicode码表的理解与实践,我们可以更深入地掌握字符编码的转换原理和技术细节。这种转换不仅对于开发支持多语言的应用程序至关重要,而且也是理解和解决实际问题的基础。随着技术的发展,虽然有许多...

    jsp中文乱码问题jsp中文乱码问题详解

    使用上例中的第一种方式,对接受到的字符进行解码,再转码。 B. 在server.xml的Connector节点增加useBodyEncodingForURI="true"属性配置,以控制tomcat对get方式的汉字编码方式。 jsp中文乱码问题的出现是由于...

    net.sourceforge.pinyin4j.zip

    标签中的“字符转码”是指Pinyin4j能够处理汉字与拼音之间的编码转换,而“中文转汉字”则强调了它的主要功能——将汉字转换为对应的拼音形式。通过Pinyin4j,开发者无需深入理解复杂的汉字拼音规则,只需简单调用...

    美空商业版(GBK) 美空网dz3.2模板

    GBK编码是此模板所采用的一种字符集,它是中国大陆广泛使用的汉字编码标准,能够支持大量的中文字符,确保了网站内容的正常显示。 首先,我们要了解什么是Discuz! X3.2。Discuz! 是一款开源的PHP论坛软件,由康盛...

    VFP简繁体转换

    《VFP简繁体转换详解》 在信息技术领域,尤其是在中文处理方面,简体与繁体的转换是一项常见的任务。Visual FoxPro(简称VFP)作为一款早期的数据库开发工具,也提供了对简繁体转换的支持。本篇文章将详细介绍如何...

    js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换&#XXX函数代码

    例如,GB2312-80、GBK、Big5等都是常用的汉字字符集,每个汉字通常使用2个字节表示,而每个字节的ASCII码范围在161-254之间(16进制A1-FE)。 #### JS中的字符转换 JavaScript提供了多种方法来实现字符编码的转换...

Global site tag (gtag.js) - Google Analytics