广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java中GBK转UTF-8乱码的解决方法
  • 243
分享到

java中GBK转UTF-8乱码的解决方法

java教程javagbkutf-8乱码 2017-10-15 20:10:37 243人浏览 才女
摘要

java中GBK转UTF-8乱码的解决方法如果自己采用的是GBK编码,对方采用得到是UTF-8编码,发送数据时需要将GBK编码数据转换成UTF-8编码数据,这样对方才不会乱码。问题出现:GBK转UTF-8时,奇数个中文会乱码,偶数个中文不会

java中GBK转UTF-8乱码的解决方法

如果自己采用的是GBK编码,对方采用得到是UTF-8编码,发送数据时需要将GBK编码数据转换成UTF-8编码数据,这样对方才不会乱码。

问题出现:GBK转UTF-8时,奇数个中文会乱码,偶数个中文不会乱码。

原因分析:

public static void analyze() throws UnsupportedEncodingException {
String gbk = "我来了";
String utf8 = new String(gbk.getBytes("UTF-8"));
for (byte b : gbk.getBytes("UTF-8")) {
System.out.print(b + " ");
}
System.out.println();
for (byte b : utf8.getBytes()) {
System.out.print(b + " ");
}
}

注意最后一个字节不同,上面一行才是正确的UTF-8编码。那么为什么下面一行最后一个字节是63,而不是-122呢?这就是导致乱码的原因所在。

GBK编码是一个中文2个字节,而UTF-8编码是一个中文3个字节,当我们调用getBytes("UTF-8")方法时,会通过计算来增加字节,使得从GBK的2个字节变成UTF-8对应的3个字节。因此,上例3个中文输出了9个字节。

(相关视频教程分享:java视频教程)

解决问题

保证字节正确才是硬道理。当调用getBytes("UTF-8")转换成字节数组后,创建ISO-8859-1编码的字符串,ISO-8859-1编码是一个字节对应一个字符,因此不会使最后一个字节错误。

public static void correctEncode() throws UnsupportedEncodingException {
String gbk = "我来了";
String iso = new String(gbk.getBytes("UTF-8"),"ISO-8859-1");
for (byte b : iso.getBytes("ISO-8859-1")) {
System.out.print(b + " ");
}
System.out.println();
//模拟UTF-8编码的网站显示
System.out.println(new String(iso.getBytes("ISO-8859-1"),"UTF-8"));
}

--结束END--

本文标题: java中GBK转UTF-8乱码的解决方法

本文链接: https://www.lsjlt.com/news/3203.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中GBK转UTF-8乱码的解决方法
    java中GBK转UTF-8乱码的解决方法如果自己采用的是GBK编码,对方采用得到是UTF-8编码,发送数据时需要将GBK编码数据转换成UTF-8编码数据,这样对方才不会乱码。问题出现:GBK转UTF-8时,奇数个中文会乱码,偶数个中文不会...
    99+
    2017-10-15
    java教程 java gbk utf-8 乱码
  • MSSQL转MYSQL及gb2312转utf-8无乱码的解决方法
    MSSQL转MYSQL及gb2312转utf-8无乱码的解决方法,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用软件:MySQLMigrat...
    99+
    2022-10-18
  • 怎么用UTF-8解决GBK中生僻字乱码问题
    这篇文章主要介绍“怎么用UTF-8解决GBK中生僻字乱码问题”,在日常操作中,相信很多人在怎么用UTF-8解决GBK中生僻字乱码问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-18
  • php转utf-8中文乱码如何解决
    本篇内容主要讲解“php转utf-8中文乱码如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php转utf-8中文乱码如何解决”吧!php转utf-8中文乱码的解决办法:1、在代码开始处加...
    99+
    2023-07-05
  • php5.6 gbk乱码的解决方法
    这篇文章主要介绍php5.6 gbk乱码的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php5.6 gbk乱码的解决办法:首先在“/etc/php.ini”的php标签下增加参数“default_chars...
    99+
    2023-06-15
  • 网站建设中编码转码工具实现utf-8与gbk转换的方法
    这篇文章给大家介绍网站建设中编码转码工具实现utf-8与gbk转换的方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。所以最好的方法是直接使用编码转换软件,我用的软件是convertz,貌似这个软件N年前开发出来后就没...
    99+
    2023-06-12
  • HTML5 UTF-8中文乱码怎么解决
    这篇文章主要介绍“HTML5 UTF-8中文乱码怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML5 UTF-8中文乱码怎么解决”文章能帮助大家解决问题...
    99+
    2022-10-19
  • HTML5 UTF-8 中文乱码如何解决
    本篇内容主要讲解“HTML5 UTF-8 中文乱码如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5 UTF-8 中文乱码如何解决”吧!代码如下:...
    99+
    2022-10-19
  • dedecms utf-8 出现乱码问题的解决方法之一
    当制作dedecms模板的head.htm时页面显示正常当制作index.htm模板时发现在index.htm输入中文时会出现乱码之前没有遇到过,感觉很奇怪,于是在网上搜索了一下相关信息,但遗憾的是没有找到正确的解决办法...
    99+
    2022-06-12
    dedecms utf8 出现乱码
  • 织梦GBK/GB2312转utf-8编码操作步骤(全站修改方法)
    目前MIP对编码是有严格要求,必须是UTF-8,那么对于大部分GBK或者GB2312的用户只能先将网站整体进行编码转换,才能进行MIP改造,不然改造后的页面是乱码一大片。 为什么MIP只支持utf-8?目前部分手机自带浏...
    99+
    2022-06-12
    GBK GB2312 utf-8
  • 如何解决PHP UTF-8中文乱码问题
    本文小编为大家详细介绍“如何解决PHP UTF-8中文乱码问题”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何解决PHP UTF-8中文乱码问题”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。设置PHP文档编码...
    99+
    2023-07-05
  • 浅析解决PHP UTF-8中文乱码问题
    在开发web应用程序时,中文字符集的处理一直是很重要的一部分。而UTF-8是一个广泛使用的字符集,而PHP作为一种主流的web编程语言,也支持UTF-8字符集。但是有些情况下,我们会遇到中文字符乱码问题,这是因为在PHP的字符集处理中没有正...
    99+
    2023-05-14
    php 中文乱码
  • android POST数据遇到的UTF-8编码(乱码)问题解决办法
    今天遇到这样一个bug:客户端POST到服务器的一段数据导致服务器端发生未知异常。服务器端确认是编码转换错误。于是截取网络数据包进行分析,发现客户端POST的json数据中包含...
    99+
    2022-06-06
    编码 乱码 post Android
  • Pycharm 中文乱码解决,统一设置 UTF-8,再也不会乱码了
    背景 当我们在使用pycharm编写代码的时候,为了避免乱码问题,我们统一用utf-8编码。由于Python源代码也是一个文本文件,所以当你的源代码包含中文的时候,在保存源代码的时候就务必指定保存为...
    99+
    2023-09-07
    pycharm python ide
  • 如何解决当设置编码为utf-8乱码的问题
    这篇文章主要介绍“如何解决当设置编码为utf-8乱码的问题”,在日常操作中,相信很多人在如何解决当设置编码为utf-8乱码的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何解决当设置编码为utf-8乱码...
    99+
    2023-06-08
  • Tomcat中catalina.bat设置为UTF-8控制台出现乱码的方法
    小编给大家分享一下Tomcat中catalina.bat设置为UTF-8控制台出现乱码的方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!catalina.bat中必须设置为UTF-8,如果我不设置为UTF-8,页面接收到...
    99+
    2023-06-14
  • Linux安装GBK/GB2312程序显示乱码的解决方法
    本篇内容主要讲解“Linux安装GBK/GB2312程序显示乱码的解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux安装GBK/GB2312程序显示乱码的解决方法”吧!  解决方法...
    99+
    2023-06-13
  • java中request乱码解决方法
    POST中文乱码解决方式:POST通过request body传递参数。设置response的字符流的编码方式为UTF-8。request.setCharacterEncoding("UTF-8"); 这句话解决了POST方式提交的中文乱码...
    99+
    2019-08-18
    java request 乱码
  • java中url乱码解决方法
    java中url乱码解决方法:(推荐:java视频教程)将字符串转码:newString(“xxxxx”.getBytes(“iso-8859-1”),”utf-8”)这种转码方式有很大的弊端,因为它是使用指定的字符集将此String编码为...
    99+
    2017-05-02
    java
  • java中string乱码解决方法
    java中string乱码解决方法:(推荐:java视频教程)对字符串进行转码来解决字符串乱码代码如下:System.out.println(str); String str1 = new String(str.ge...
    99+
    2021-08-15
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作