java怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串

Python014

java怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串,第1张

通过JDK1.6知道String类中getBytes(”编码“)方法可以讲一个数用指定的编码转成一个字节数组,String中通过指定的 charset解码指定的 byte 数组,构造一个新的 String。代码如下:

try{

String s = "java学习"

System.out.println(s)

String result = new String(s.getBytes("GB2312"),"iso-8859-1")

System.out.println(s)

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

扩展资料:

getBytes() 方法有两种形式:

1、getBytes(String charsetName): 使用指定的字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

2、getBytes(): 使用平台的默认字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

参考资料:

百度百科-getBytes()

java不同编码之间进行转换,都需要使用unicode作为中转。

String str = "任意字符串"

str = new String(str.getBytes("gbk"),"utf-8")

备注说明:

str.getBytes("UTF-8")意思是以UTF-8的编码取得字节

new String(XXX,"UTF-8")意思是以UTF-8的编码生成字符串

举例:

public static String getUTF8XMLString(String xml) {

// A StringBuffer Object

StringBuffer sb = new StringBuffer()

sb.append(xml)

String xmString = ""

String xmlUTF8=""

try {

xmString = new String(sb.toString().getBytes("UTF-8"))

xmlUTF8 = URLEncoder.encode(xmString, "UTF-8")

System.out.println("utf-8 编码:" + xmlUTF8)

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

// return to String Formed

return xmlUTF8

扩展资料:

UTF-8编码规则:

如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。

实际表示ASCII字符的UNICODE字符,将会编码成1个字节,并且UTF-8表示与ASCII字符表示是一样的。所有其他的UNICODE字符转化成UTF-8将需要至少2个字节。每个字节由一个换码序列开始。第一个字节由唯一的换码序列,由n位连续的1加一位0组成,首字节连续的1的个数表示字符编码所需的字节数。

Unicode转换为UTF-8时,可以将Unicode二进制从低位往高位取出二进制数字,每次取6位,如上述的二进制就可以分别取出为如下示例所示的格式,前面按格式填补,不足8位用0填补。

参考资料来源:百度百科:UTF-8

字节流

转换为String

(Unicode),字节流可以是GB系列、UTF-8等多种编码:

ResultSet

rs

bytep[]

bytes

=

rs.getBytes()

String

str

=

new

String(bytes,

"

gb2312

")