java实现utf-8与GB2312编码的转换
2011-01-26 16:16
609 查看
Java
则采用了平台无关的
UNICODE,Java
从一个
byte
流中读取一个字符串时,将把平台
相关的
byte
转变为平台无关的
Unicode
字符串。在输出时
Java
将把
Unicode
字符串转变为平台相关的
byte
流,如果某个
Unicode
字
符在某个平台上不存在,将会输出一个
'?'
。
GB2312
编码中一个汉字是
16
位的,而
UTF8
中一个汉字却是
24
位的。如果实现
UTF-8
与
gb2312
编码的相互转换呢?今天整理了一番,给出两者进行转换的代码。
//
将
UTF-8
编码的字符串转换为
GB2312
编码格式:
public
static
String utf8Togb2312(String str){
StringBuffer sb =
new
StringBuffer();
for
(
int
i=0; i<str.length(); i++) {
char
c = str.charAt(i);
switch
(c) {
case
'+'
:
sb.append(
' '
);
break
;
case
'%'
:
try
{
sb.append((
char
)Integer.parseInt
(
str.substring(i+1,i+3),16));
}
catch
(NumberFormatException e) {
throw
new
IllegalArgumentException();
}
i += 2;
break
;
default
:
sb.append(c);
break
;
}
}
String result = sb.toString();
String res=
null
;
try
{
byte
[] inputBytes = result.getBytes(
"8859_1"
);
res=
new
String(inputBytes,
"UTF-8"
);
}
catch
(Exception e){}
return
res;
}
//
将
GB2312
编码格式的字符串转换为
UTF-8
格式的字符串:
public
static
String gb2312ToUtf8(String str) {
String urlEncode =
""
;
try
{
urlEncode = URLEncoder.encode
(str,
"UTF-8"
);
}
catch
(UnsupportedEncodingException e) {
e.printStackTrace();
}
return
urlEncode;
}
当然各种编码之前都可以进行相互的转换,本文只是将最常用的两种字符进行了转换,起到抛砖引玉的作用。后期如果有额外的需求,再对其它字符的转换进行介绍。
则采用了平台无关的
UNICODE,Java
从一个
byte
流中读取一个字符串时,将把平台
相关的
byte
转变为平台无关的
Unicode
字符串。在输出时
Java
将把
Unicode
字符串转变为平台相关的
byte
流,如果某个
Unicode
字
符在某个平台上不存在,将会输出一个
'?'
。
GB2312
编码中一个汉字是
16
位的,而
UTF8
中一个汉字却是
24
位的。如果实现
UTF-8
与
gb2312
编码的相互转换呢?今天整理了一番,给出两者进行转换的代码。
//
将
UTF-8
编码的字符串转换为
GB2312
编码格式:
public
static
String utf8Togb2312(String str){
StringBuffer sb =
new
StringBuffer();
for
(
int
i=0; i<str.length(); i++) {
char
c = str.charAt(i);
switch
(c) {
case
'+'
:
sb.append(
' '
);
break
;
case
'%'
:
try
{
sb.append((
char
)Integer.parseInt
(
str.substring(i+1,i+3),16));
}
catch
(NumberFormatException e) {
throw
new
IllegalArgumentException();
}
i += 2;
break
;
default
:
sb.append(c);
break
;
}
}
String result = sb.toString();
String res=
null
;
try
{
byte
[] inputBytes = result.getBytes(
"8859_1"
);
res=
new
String(inputBytes,
"UTF-8"
);
}
catch
(Exception e){}
return
res;
}
//
将
GB2312
编码格式的字符串转换为
UTF-8
格式的字符串:
public
static
String gb2312ToUtf8(String str) {
String urlEncode =
""
;
try
{
urlEncode = URLEncoder.encode
(str,
"UTF-8"
);
}
catch
(UnsupportedEncodingException e) {
e.printStackTrace();
}
return
urlEncode;
}
当然各种编码之前都可以进行相互的转换,本文只是将最常用的两种字符进行了转换,起到抛砖引玉的作用。后期如果有额外的需求,再对其它字符的转换进行介绍。
相关文章推荐
- java实现utf-8与GB2312编码的转换
- 使用java的native2ascii工具命令来转换编码gbk,gb2312,utf-8【转】
- 识别常见编码格式文件并转换成UTF-8编码的java实现
- Java实现的UTF-8,GBK,Unicode编码相互转换的代码
- 用JavaScript实现的将GB2312转换为UTF-8编码
- 使用java的native2ascii工具命令来转换编码gbk,gb2312,utf-8
- PHP实现gb2312、UTF-8等字符和unicode间的编码转换及PHP版unescape
- 识别常见编码格式文件并转换成UTF-8编码 的java实现 源码
- java怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
- 用JavaScript实现的将GB2312转换为UTF-8编码
- 【最近面试遇到的一些问题】JAVA UTF-8 GB2312 编码互转
- JAVA UTF-8 GB2312 编码互转
- GB2312编码与UTF-8编码的相互转换代码(linux windows下通用)
- java中utf-8编码的byte数组转换成String类型代码
- 用java实现简单快速的webservice客户端/数据采集器(支持soap1.1和soap1.2标准,支持utf-8编码)
- JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
- 利用 libiconv 实现汉字编码 utf-8 格式 和 gbk格式的相互转换
- 告别乱码,针对GBK、UTF-8两种编码的智能URL解码器的java实现
- Java字符串编码转换UTF-8
- utf_8与GB2312编码的转换