通过以下方法将GBK字符转成UTF-8编码格式的byte【】数组

  1. package test;
  2. import java.io.UnsupportedEncodingException;
  3. public class TestEncoder {
  4. /**
  5. * @param args
  6. */
  7. public static void main(String[] args) throws Exception {
  8. String gbk = "iteye问答频道编码转换问题";
  9. String iso = new String(gbk.getBytes("UTF-8"),"ISO-8859-1");
  10. System.out.println(iso);
  11. String utf8 = new String(iso.getBytes("ISO-8859-1"),"UTF-8");
  12. System.out.println(utf8);
  13. System.out.println(getUTF8StringFromGBKString(gbk));
  14. }
  15. public static String getUTF8StringFromGBKString(String gbkStr) {
  16. try {
  17. return new String(getUTF8BytesFromGBKString(gbkStr), "UTF-8");
  18. } catch (UnsupportedEncodingException e) {
  19. throw new InternalError();
  20. }
  21. }
  22. public static byte[] getUTF8BytesFromGBKString(String gbkStr) {
  23. int n = gbkStr.length();
  24. byte[] utfBytes = new byte[3 * n];
  25. int k = 0;
  26. for (int i = 0; i < n; i++) {
  27. int m = gbkStr.charAt(i);
  28. if (m < 128 && m >= 0) {
  29. utfBytes[k++] = (byte) m;
  30. continue;
  31. }
  32. utfBytes[k++] = (byte) (0xe0 | (m >> 12));
  33. utfBytes[k++] = (byte) (0x80 | ((m >> 6) & 0x3f));
  34. utfBytes[k++] = (byte) (0x80 | (m & 0x3f));
  35. }
  36. if (k < utfBytes.length) {
  37. byte[] tmp = new byte[k];
  38. System.arraycopy(utfBytes, 0, tmp, 0, k);
  39. return tmp;
  40. }
  41. return utfBytes;
  42. }
  43. }

解决GBK字符转UTF-8乱码问题的更多相关文章

  1. 理解并解决GBK转UTF-8奇数中文乱码(转)

    最近在做一个反馈功能,把数据反馈到对方公司网站,我公司是GBK编码,对方公司是UTF-8编码.因此,我需要将GBK编码数据转换成UTF-8编码数据,这样对方网站才不会乱码.最简单的方法是将HttpCl ...

  2. python爬虫解决gbk乱码问题

    今天尝试了下爬虫,爬取一本小说,忘语的凡人修仙仙界篇,当然这样不好,大家要支持正版. 爬取过程中是老套路,先获取网页源代码 # -*- coding:UTF-8 -*- from bs4 import ...

  3. 22-python爬虫解决gbk乱码问题

    转载自: python爬虫解决gbk乱码问题   今天尝试了下爬虫,爬取一本小说,忘语的凡人修仙仙界篇,当然这样不好,大家要支持正版. 爬取过程中是老套路,先获取网页源代码 # -*- coding: ...

  4. Java_Web学习笔记_过滤器应用案例(解决全站字符乱码)

    解决全站字符乱码(POST和GET中文编码问题) servlet: l  POST:request.setCharacterEncoding(“utf-8”); l  GET: String user ...

  5. 解决在Ubuntu终端下使用cURL获取GBK格式的页面出现乱码问题

    问题描述 在Ubuntu下使用终端使用cURL去拿一个GBK的页面,发现返回来的内容里面中文都是乱码 解决方法 通过iconv来处理乱码拿到的内容,进行转码,示例如下: $curl http://ww ...

  6. 解决Fiddler查看Post参数中文乱码的问题

    解决Fiddler查看Post参数中文乱码的问题 解决方法: 1.win+R 2.打开注册表编辑器:输入regedit +回车+是 3.HKEY_CURRENT_USER\Software\Micro ...

  7. 解决URL地址中的中文乱码问题的办法

    解决URL地址中的中文乱码问题的办法 引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生 ...

  8. 解决ArcGIS10.3属性表中文乱码问题

    问题描述:在10.3刚出为不久,就发现有时属性表会出现中文乱码的问题. 解决方法:在Cmd命令行中输入以下命令: reg add HKEY_CURRENT_USER\Software\ESRI\Des ...

  9. 解决Ubuntu和Windows的文件乱码问题(转载)

    解决Ubuntu和Windows的文件乱码问题(debian也通用) 1.转换文件内容编码   Windows下天生的纯文本文件,其中文编码为GBK,在Ubuntu下显示为乱码,可以使用iconv命令 ...

随机推荐

  1. 游戏贴图中常用术语《DC》的理解

    什么是DC呢? 在GDI中,DC(Device Context)是一个非常重要的概念. 有的书中,将DC翻译为设备描述表,也有的书中翻译为设备上下文. 但是这些翻译,无法在我们的头脑里有强烈的冲击,无 ...

  2. C# .net windows服务启动多个服务 ServiceBase

    在windows服务中想要启动多个服务 ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { // new SyncServ ...

  3. 解决Only a type can be imported. com.mysql.jdbc.Connection resolves to a package的报错问题

    写jsp加载数据驱动以后老是提示Only a type can be imported. com.mysql.jdbc.Connection resolves to a package的错误,然而改成 ...

  4. Sed是个好东西

    今天遇到的源码使用了变态的宏,直接对参数进行宏处理,使得我的vim插件几乎全废,只能想办法将宏给替换进去. #!/bin/bash find . -type f -name '*.c' | xargs ...

  5. c语言scanf返回值

    1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", &a, &b); 如果 ...

  6. xmind的第六天

  7. iframe的使用

    function Report() {           var info = document.getElementById("iframeReport");          ...

  8. C++宽窄字符串转换

    首先,贴出我给出的解决方案: http://files.cnblogs.com/xuejianhui/utils.rar   再则,贴出网上最常见的例子: #include <string> ...

  9. django 过滤器 、日期格式化参数

    http://blog.csdn.net/xyp84/article/details/7945094 django1.4 html页面从数据库中读出DateTimeField字段时,显示的时间格式和数 ...

  10. java Scanner

    public static void main(String[] args) throws IOException { System.out.print("Enter a number:&q ...