- 浏览: 56123 次
- 性别:
- 来自: 深圳
文章分类
最新评论
问:怎样将GBK 编码的汉字转换成为 UTF-8 编码的汉字?
[其实应这样问:怎样将GBK 编码的字节数组转换成为 UTF-8 编码的字节数组,
都是汉字有什么不同?]
答: new String(str.getBytes("gbk"),"utf-8");
其实这个答案非常错误,你可试一下,无论str是任何中文字符串,返回的结果都将是???.
问题在于str.getBytes("gbk")返回的是GBK格式的字节数组,即存在于GBK编码集中,
也就是说按GBK方式,这个字节数组可以转换成正确字符串,然而你偏要按Utf-8方式转换他.
而这个字节数组所代表的编码在utf-8编码集中不存在,所以显示乱码.
那么怎么转换才是正确呢,首先需清楚一个概念,所有的字符串在内存中都是换Unicode存储的
(严格的说是UTF-16).我们要先把GBK编码的字节数组转换为Unicode:
str = new String(buf,"GBK"); 然后再编码成 UTF-8的字节数组:
str.getBytes("UTF-8") 这样就完成了转换.
[其实应这样问:怎样将GBK 编码的字节数组转换成为 UTF-8 编码的字节数组,
都是汉字有什么不同?]
答: new String(str.getBytes("gbk"),"utf-8");
其实这个答案非常错误,你可试一下,无论str是任何中文字符串,返回的结果都将是???.
问题在于str.getBytes("gbk")返回的是GBK格式的字节数组,即存在于GBK编码集中,
也就是说按GBK方式,这个字节数组可以转换成正确字符串,然而你偏要按Utf-8方式转换他.
而这个字节数组所代表的编码在utf-8编码集中不存在,所以显示乱码.
那么怎么转换才是正确呢,首先需清楚一个概念,所有的字符串在内存中都是换Unicode存储的
(严格的说是UTF-16).我们要先把GBK编码的字节数组转换为Unicode:
str = new String(buf,"GBK"); 然后再编码成 UTF-8的字节数组:
str.getBytes("UTF-8") 这样就完成了转换.
发表评论
-
高精度
2011-08-31 20:40 978之前提到过在商业运算中要使用BigDecimal来进行相关的钱 ... -
java中如何进行高精度运算
2011-08-31 20:32 781import java.math.BigDecimal; im ... -
win7下安装vs2008
2011-01-09 23:28 845在win7下安装VS2008有点不太让人愉快,不过白痴还是找到 ... -
设置响应头字段的些许应用
2010-12-11 13:04 1049禁止浏览器缓存当前文档内容 只要增加如下的响应头字段: r ... -
正则表达式
2010-12-11 12:39 573整理资料如下: \\ 反斜杠 \t 间隔 ('\u0009' ... -
应该懂的基础问题
2010-12-11 12:14 676问题一:我声明了什么! String s = &quo ... -
Java中的堆栈
2010-12-11 10:59 633Java把内存划分成两种:一种是栈内存,一种是堆内存。 ... -
Java IO 小结
2010-12-11 10:51 588什么是数据流 ----------数据流是指所有的数据通信通道 ... -
字符转换
2010-11-30 20:43 621问:怎样将GBK 编码的汉字转换成为 UTF-8 编码的汉 ... -
进制转换
2010-11-30 20:42 783计算机操作里面时常要牵涉到二进制、十进制、十六进制等。特别是在 ... -
多叉树解决复杂表头问题
2010-11-30 20:21 760现代化WEB项目中少不了要用到报表展现.对于中国式报表来说,复 ... -
编译器报:未调用原型函数(是有意用变量定义的吗?)(本文为原创,转载清注明出外)
2010-11-30 20:08 1802MSDN解释:编译器检测到未使用的函数原型。如果有意将该原型作 ... -
C++类型转换运算符重载
2010-11-30 20:06 841在C++中有一个特殊的运算符重载方法--类型转换运算符重载,形 ... -
ATL分解字符串
2010-11-30 20:05 739一个简单的分解字符串的方法: Code vector< ... -
java字符集(三)之java.io
2010-11-30 20:04 916java IO 的输出分两种,字节流: InputStream ... -
java字符集(二)
2010-11-30 20:03 653知道java的字符集编码,那么java是怎么读取内存中的字节转 ... -
编码字符集与字符集编码的区别(转)
2010-11-30 20:03 646需要再一次强调的是,无论历史上的UCS还是现如今的Unicod ... -
Unicode与UCS的历史恩怨(转载)
2010-11-30 19:59 543ASCII及相关标准 ... -
Java字符集(一)
2010-11-30 19:57 652UNICODE,GBK和BIG5就是编码的值,而utf-8,u ...
相关推荐
java编码转换工具
在Java编程语言中,文件编码转换是一个常见的任务,特别是在处理多国语言或者处理不同系统间的文件传输时。本文将深入探讨如何使用Java实现文件编码的转换,主要关注GB2312、UTF-8这两种常见编码格式之间的转换。 ...
标题"java 文件编码转换"指的是使用Java来解决文件编码问题,而描述中提到的"提供一个jar包和一个java文件"则暗示了我们可以通过这两个文件实现这个功能。 首先,`chardet.jar`可能是一个字符集检测库,用于自动...
### Java字符串编码转换详解 #### 一、Java 字符串编码转换基础 在Java中,字符串的处理是非常常见的操作之一,而字符编码是确保数据正确显示的关键因素。本篇文章将重点介绍Java中字符串编码的转换方法及其在Web...
编码转换的类 含源代码, 适合编码转换时候使用 默认转换为UTF-8 可以转换成别的
### Java编码格式转换 在Java开发中,字符编码的转换是一项常见的需求,尤其是在处理国际化文本时。本文将详细介绍如何在不同的编码格式之间进行转换,并探讨一些常见的编码转换错误及其处理方法。 #### Unicode与...
`JAVA 转换字符编码工具`可能是一个用于处理字符编码转换的Java程序,旨在帮助开发者解决不同编码格式之间转换的问题。这篇博文链接(虽然没有提供具体内容)可能详细介绍了这个工具的实现原理和使用方法。 在Java...
根据提供的文件信息,本文将详细解释Java中字符串的不同编码转换方法及原理,并深入探讨每种编码格式的特点。 ### Java字符串的编码转换 在Java中,处理不同字符集之间的字符串转换是一项常见任务。尤其是在处理...
附件中:FileCharsetConverter.java 此文件可以实现两个编码的相互转换 FileCharsetConverter.convert( "gbk/DispatcherHandler.java", "GBK", "UTF-8", new FilenameFilter() { public boolean accept(File...
Java编码转换是一个重要的主题,特别是在处理跨平台和国际化应用时。Java编程中,编码问题时常出现,例如在处理中文字符时可能出现乱码。为了解决这些问题,Java提供了一个名为`native2ascii`的工具,该工具能够帮助...
本话题主要关注如何使用Java进行批量文件编码转换,特别是从一种编码(如GBK)转换到另一种编码(如UTF-8)。以下是对这个主题的详细阐述: 首先,我们需要理解什么是文件编码。文件编码是存储和显示文本内容的规则...
本文将深入探讨“Java文件的编码转换”这一主题,以及如何利用Java来解决由于不同编码格式引起的兼容性问题。 首先,我们需要理解什么是文件编码。文件编码是指在计算机中存储和处理文本的方式,常见的有GBK和UTF-8...
标题中的“文件编码转换工具java”表明这是一款基于Java编程语言开发的应用,主要功能是进行文件编码的转换。在IT领域,文件编码是至关重要的,不同的编码格式适用于不同的语言和平台,例如ASCII、UTF-8、GBK等。这...
Java 编码转换的详细过程 Java 编码转换是 Java 程序的生命周期中一个非常重要的过程。在 Java 程序的生命周期中,编程人员首先编写源程序代码,然后将其编译成.class 文件,最后将其运行在 JVM 中。在这个过程中,...
Java写的一个小程序,用于批量转换GBK编码的java源文件为UTF-8编码格式
Java源码编码转换器v2.0是一款专用于解决Java源码编码问题的工具,它主要功能是将GBK编码的Java文件转换成UTF-8编码,以解决由于编码不匹配导致的乱码问题。该工具在之前的版本基础上进行了优化,修复了UTF-8转换后...
Java中的字符编码转换是编程实践中一个至关重要的概念,尤其是在处理多语言环境和跨平台交互时。Java通过统一采用UTF-16编码格式在JVM内部处理字符,简化了字符操作的复杂性。UTF-16是一种变长的Unicode编码,它可以...
在Java编程语言中,编码转换是一项重要的任务,特别是在处理不同来源的数据时,如读取文本文件、网络数据传输或数据库交互。...通过深入研究和实践,可以增强对Java编码转换机制的理解,提升软件质量。
Java编写的Unicode编码转换器是一种实用工具,它能够帮助用户将各种国家和地区的文字转换成Unicode编码,同时也能实现从Unicode编码回转到原始字符。Unicode是一种国际标准,旨在为全球所有的字符提供一个统一的编码...