首页 > 编程语言 > 详细

java 中文转GBK码

时间:2015-03-24 12:20:56      阅读:138      评论:0      收藏:0      [点我收藏+]

 

遇到一个需求,一个接口的调用时,需要将中文转成对应的GBK码,然后发请求调用,大概搜了下,貌似没有简单可行的现成方法,不像python能够直接decode / encode。

找的时候有一个帖子给了启示: java默认用Unicode存储String,所以直接转成某种编码的byte的同时,就已经转成了该编码的encoding。

于是找了个例子,

天安门 对应的gbk码是: %CC%EC%B0%B2%C3%C5

于是转一下

byte[] bytes = source.getBytes("GBK");

再计算下补码(还是反码)神马的。

for(byte b : bytes) {
sb.append("%" + Integer.toHexString((b & 0xff)).toUpperCase());
}

就得到了上述的CC EC B0 B2 C3 C5

按照格式塞进去百分号,大功告成。完整的函数如下:

 

 

1     public static String toGBK(String source) throws UnsupportedEncodingException {
2         StringBuilder sb = new StringBuilder();
3         byte[] bytes = source.getBytes("GBK");
4         for(byte b : bytes) {
5             sb.append("%" + Integer.toHexString((b & 0xff)).toUpperCase());
6         }
7         
8         return sb.toString();
9     }

 

java 中文转GBK码

原文:http://www.cnblogs.com/lin2yatou/p/4362064.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!