Java怎么将字符串转换为GB2312原编码

如题:例Stringa="青白";转换为青(c7e0)白(b0d7),c7e0为GB2312编码。... 如题:例 String a = "青白";转换为 青(c7e0)白( b0d7) ,c7e0为GB2312编码。 展开
 我来答
xuxingxingvip
2018-02-27 · TA获得超过252个赞
知道小有建树答主
回答量:372
采纳率:70%
帮助的人:124万
展开全部
@Test
public 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进制就可以了。
airballbibi
推荐于2016-07-25 · TA获得超过223个赞
知道答主
回答量:93
采纳率:100%
帮助的人:50.2万
展开全部
在java中,字符默认存储的编码为utf-8码。
所以在转码的时候,首先byte[] sour = 字符串.getBytes("utf-8"),获取正确的byte数组。
再通过String dest = new String(sour , "gb2312");获取按gb2312编码的字符串。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
南土民0V
2014-08-27 · TA获得超过275个赞
知道小有建树答主
回答量:718
采纳率:46%
帮助的人:144万
展开全部
方法一:
思路:先转为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();
        }
追问

追答
回家啦
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
叫我大师好了
2014-08-27
知道答主
回答量:48
采纳率:0%
帮助的人:13.9万
展开全部
+string
。。。。。。
追问
什么意思?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式