广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java中的字符出现乱码
  • 797
分享到

java中的字符出现乱码

java字符乱码 2019-11-18 19:11:18 797人浏览 猪猪侠
摘要

原因:编解码不一致导致字符乱码。首先,我们可以通过调用java.NIO.charset.Charset.defaultCharset()获得系统的默认字符集,中文windows系统都是GBK,所以JVM默认都是以GBK字符集来进行编解码。相

原因:

编解码不一致导致字符乱码。

首先,我们可以通过调用java.NIO.charset.Charset.defaultCharset()获得系统的默认字符集,中文windows系统都是GBK,所以JVM默认都是以GBK字符集来进行编解码。

相关视频学习教程:java教学视频

乱码产生最大的可能性在于编解码不一致。

// 代码片段1:
byte[] read = "你好abc".getBytes(); 
String result = new String(read);
System.out.println(result);

上诉这段代码一共有3步:

编码。这里为了看起来更简洁就这样写,事实上和你从文件/网络等其他媒介读取是一样的,原本输入流是什么类型编码,读取后也是什么类型编码。这里没有指定编码方式,所以默认为GBK。

解码。我们最终的操作都是字符串对象,可以通过指定字符串的对字节数组的解码方式,最终获得一个字符串对象。这里没有指定解码方式,所以默认为GBK。

输出、使用字符串。事实上这里还有一次编解码过程,就是输出流编码为GBK,控制台解码为GBK,最终显示。因为输出、使用字符串时都是以系统默认字符集进行,不存在编解码不一致的可能,所以这里不会是乱码根源。

假设我们将输入流的编码改一下:

// 代码片段2:
byte[] read = "你好abc".getBytes("utf-8"); 
String result = new String(read);
System.out.println(result);

再来分析一下3步:

编码,utf-8;

解码,gbk。

编解码不一致,这里便产生了乱码。

至于如何修复,相信已经很清楚了。

修复方法如下:

// 代码片段3:
byte[] read = "你好abc".getBytes("utf-8"); 
String result = new String(read,"utf-8");
System.out.println(result);

将解码方式改为与编码对应就可以了。

小结:

我们一般比较难控制输入流是什么编码,所以注意解码时与输入流的编码类型一致即可。我们一般在调用输入流的相关方法看到有charset参数,就是指解码方式。

输出流同样可以操作其编码方式,如果后续会以输入流操作这个输出的结果,比如说文件,只要都以默认的方式进行,便不会产生乱码。我们一般在调用输出流的相关方法看到有charset参数,就是指编码方式。

推荐相关文章教程:java入门教程

--结束END--

本文标题: java中的字符出现乱码

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

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

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

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

下载Word文档
猜你喜欢
  • java中的字符出现乱码
    原因:编解码不一致导致字符乱码。首先,我们可以通过调用java.nio.charset.Charset.defaultCharset()获得系统的默认字符集,中文Windows系统都是GBK,所以JVM默认都是以GBK字符集来进行编解码。相...
    99+
    2019-11-18
    java 字符 乱码
  • java中的字符串总是出现乱码
    问题描述:在TOMCAT里经常出现这种情况:我们输入的字符串是汉字(默认的编码是GBK),但是TOMCAT默认的是ISO8859-1编码,于是存在了错误,导致了乱码的产生。解决办法:将从Tomcat得到的字符串再次利用ISO8859-1将其...
    99+
    2022-04-07
    java 字符串 乱码
  • mysql字符转化出现乱码的原因
    这篇文章主要介绍“mysql字符转化出现乱码的原因”,在日常操作中,相信很多人在mysql字符转化出现乱码的原因问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql字符转...
    99+
    2022-10-18
  • 解决JavaEE开发中字符编码出现乱码的问题
    网上有很多处理字符编码的解决方案,在此,我站着前人的肩膀上作自己的总结。在我看来,出现乱码问题的解决方法无非就是在3个地方进行编码设置:HTML、JSP等前端页面;后台servlet中request和response对象;服务器配置文件。1...
    99+
    2023-05-31
    字符编码 乱码 javaee
  • PHP字符集编码出现乱码怎么解决
    这篇文章主要讲解了“PHP字符集编码出现乱码怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP字符集编码出现乱码怎么解决”吧!要么页面原始汉字和从数据库里取出的汉字全是乱码;要么原...
    99+
    2023-06-17
  • php页面字符出现乱码如何解决
    要解决 PHP 页面字符乱码问题,可以尝试以下几种方法:1. 设置字符编码:在 PHP 页面的头部添加以下代码,指定页面的字符编码为...
    99+
    2023-08-19
    php
  • c++字符串拼接出现乱码怎么解决
    在C++中,字符串拼接可能会导致乱码的问题,主要是由于编码不一致或字符串中包含特殊字符。以下是一些解决乱码问题的方法:1. 确保字符...
    99+
    2023-10-26
    c++
  • Win10系统中命令提示符出现字符乱码如何解决
    本篇文章给大家分享的是有关Win10系统中命令提示符出现字符乱码如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。解决步骤如下:打开控制面板,选择“更改日期、时间或数字格式...
    99+
    2023-06-10
  • 解决Java中文乱码问题:使用System.out.println输出中文字符串
    解决Java中文乱码问题:使用System.out.println输出中文字符串 在Java编程中,当我们想要在控制台输出中文字符串时,有时会遇到乱码的问题。本文将介绍如何解决这个问题,并提供相应的源...
    99+
    2023-10-25
    java python 开发语言 Java
  • java字符串中文乱码怎么解决
    在Java中,解决字符串中文乱码问题可以采取以下几种方法:1. 使用正确的字符编码:在Java中,字符串编码默认使用的是UTF-8编...
    99+
    2023-08-11
    java
  • java字符串乱码如何解决
    Java字符串乱码的解决方法有以下几种:1. 确保源文件的编码与Java编译器的编码一致。可以在编写Java源文件时,使用指定编码格...
    99+
    2023-08-31
    java
  • java中byte[]转String出现乱码
    首先常用的byte[]直接转String很简单:public static void main(String[] args) { String str="我是中国人"; byte[] arr=str.getBytes(); Sy...
    99+
    2021-08-10
    java byte[] String 乱码
  • java中判断字符串是否乱码的方法
    在IE中GET方式提交会产生乱码 但有两个入口都会走这同一段代码固不能直接转码,所以要进行判断传过来的该值是不是乱码可用以下方式验证:java.nio.charset.Charset.forName("GBK").newEncoder()....
    99+
    2014-09-13
    java 乱码
  • php 16进制转字符串出现中文乱码怎么解决
    在使用 PHP 进行 16 进制转字符串操作时,有时会出现中文乱码的问题。这个问题可能出现在很多情况下,比如从数据库中读取数据时,或者是接受用户输入时。本文将介绍一些常见的中文乱码问题,并提供一些解决方法。从数据库中读取数据时出现中文乱码如...
    99+
    2023-05-14
    php
  • php 16进制转字符串出现中文乱码如何解决
    本篇内容介绍了“php 16进制转字符串出现中文乱码如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!从数据库中读取数据时出现中文乱码如...
    99+
    2023-07-05
  • java控制台出现乱码
    java资源的编码都是utf8,使用utf8编译。但是控制台输出的时候,中文汉字还是会出现乱码。eclipse控制台eclipse控制台的编码默认为操作系统的编码,比如GBK。这时候就不能正确显示utf8编码的汉字,需要指定控制台的编码为u...
    99+
    2021-11-28
    java基础 java 控制台 乱码
  • win7中文字出现乱码怎么解决
    本篇内容主要讲解“win7中文字出现乱码怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win7中文字出现乱码怎么解决”吧!解决方法:点击开始按钮,然后点击控制面板。将查看方式设置成类别,...
    99+
    2023-06-28
  • 使用php分割字符串时出现乱码如何解决
    今天就跟大家聊聊有关使用php分割字符串时出现乱码如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。php分割字符串乱码的解决办法:1、通过使用mbstring扩展库的“mb_s...
    99+
    2023-06-14
  • java输出语句中输出乱码
    原因:我的java文件保存的时候是用UTF-8编码保存的,而javac编译的时候是以电脑系统编码(GBK,我是win 7系统)来处理的。解决方法:方法一、将java文件以 GBK 编码方式存储,然后再编译、运行;方法二、编译时指定编码为UT...
    99+
    2015-08-09
    java入门 java 输出语句 乱码
  • mysql5数据库导出的字符集中文乱码怎么解决
    本篇内容主要讲解“mysql5数据库导出的字符集中文乱码怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql5数据库导出的字符集中文乱码怎么解决”吧...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作