Java怎么将字符串转换为GB2312原编码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java怎么将字符串转换为GB2312原编码相关的知识,希望对你有一定的参考价值。
如题:例 String a = "青白";转换为 青(c7e0)白( b0d7) ,c7e0为GB2312编码。
@Testpublic void test333()
String a="青白";
try
byte[] b=a.getBytes("GB2312");
System.out.println(bytesToHexFun1(b));
catch (UnsupportedEncodingException e)
e.printStackTrace();
//将byte数组转成16进制字符串
public static String bytesToHexFun1(byte[] bytes)
char[] HEX_CHAR = '0', '1', '2', '3', '4', '5',
'6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f';
// 一个byte为8位,可用两个十六进制位标识
char[] buf = new char[bytes.length * 2];
int a = 0;
int index = 0;
for(byte b : bytes) // 使用除与取余进行转换
if(b < 0)
a = 256 + b;
else
a = b;
buf[index++] = HEX_CHAR[a / 16];
buf[index++] = HEX_CHAR[a % 16];
return new String(buf);
中心思想就是先转成GB2312的byte数组,再转成16进制就可以了。 参考技术A 在java中,字符默认存储的编码为utf-8码。
所以在转码的时候,首先byte[] sour = 字符串.getBytes("utf-8"),获取正确的byte数组。
再通过String dest = new String(sour , "gb2312");获取按gb2312编码的字符串。 参考技术B 方法一:
思路:先转为Unicode,然后转为GBK
String utf8 = new String(t.getBytes( "UTF-8"));
System.out.println(utf8);
String unicode = new String(utf8.getBytes(),"UTF-8");
System.out.println(unicode);
String gbk = new String(unicode.getBytes("GBK"));
System.out.println(gbk);
方法二:
public static void main(String[] args)
String str="字符串编码转换";
try
byte[] temp=str.getBytes("utf-8");//这里写原编码方式
byte[] newtemp=new String(temp,"utf-8").getBytes("gbk");//这里写转换后的编码方式
String newStr=new String(newtemp,"gbk");//这里写转换后的编码方式
System.out.println(newStr);
catch (UnsupportedEncodingException e)
// TODO Auto-generated catch block
e.printStackTrace();
追问
回家啦
参考技术C +string。。。。。。追问
什么意思?
怎么将java代码的编码方式设置为gb2312
参考技术A 将文件打开。另存为,然后下面会出现一个编码格式,自己选择GB2312即可,不过记事本方式是没gb2312的,找个EditPlus或者其他的文本工具,里面就有GB2312可以选择,或者在myeclipse里面右键文件,点最底下的选择进去也有一个更换格式的,不过更换了中文会乱码得重新写
以上是关于Java怎么将字符串转换为GB2312原编码的主要内容,如果未能解决你的问题,请参考以下文章