java byte转中文乱码_java byte转string 涉及到字节流中有中文[通俗易懂]

java byte转中文乱码_java byte转string 涉及到字节流中有中文[通俗易懂]最近遇到一个问题,我用java写了一个客户端通过socket向服务器端发送消息,发送的内容是字节流,编码格式是GBK,服务器在收到消息后,如果格式正确,会返回固定的消息格式,同样也是字节流,编码格式也是GBK。现在问题来了,我怎么把字节流转换为字符流,当然是要能显示出中文。于是上网搜了一下,找到一篇博客,网址如下:http://bbs.csdn.net/topics/391939108,代码如下:…

大家好,又见面了,我是你们的朋友全栈君。

最近遇到一个问题,我用java写了一个客户端通过socket向服务器端发送消息,发送的内容是字节流,编码格式是GBK,服务器在收到消息后,如果格式正确,会返回固定的消息格式,同样也是字节流,编码格式也是GBK。

现在问题来了,我怎么把字节流转换为字符流,当然是要能显示出中文。于是上网搜了一下,找到一篇博客,网址如下:http://bbs.csdn.net/topics/391939108,代码如下:

import java.nio.charset.Charset;

import java.nio.ByteBuffer;

import java.nio.CharBuffer;

public class Test{

public static void main(String[] args){

String content = “Hello World.你好世界.”;

byte[] bs = content.getBytes();

Charset charset = Charset.defaultCharset();

ByteBuffer buf = ByteBuffer.wrap(bs);

CharBuffer cBuf = charset.decode(buf);

System.out.println(cBuf.toString());

}

}

从代码不难看出,主要是通过ByteBuffer和CharBuffer相互转换,转换之前需要设置字符的编码格式,因为我是在中文Windows下开发,所以默认的编码格式是GBK,如果你想要设置自己的编码格式,可以调用Charset的forName函数,参数即编码格式。

这里还有一个细节需要注意,即从字节到字符转换时,不难想象当读取到一个byte小于128时候,直接转英文。当大于128时,因为是GBK编码,所以需要两个连续的字节。

java中编码格式相互转换,还是比较麻烦的,我到现在也不是很清楚,只能遇到问题一点点解决。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148248.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PS 命令之get-adgroupmember!

    PS 命令之get-adgroupmember!如果get-adgroup是查询我们的用户组的话,那么Get-adgroupmember就是查询出我们的组的成员的的命令了,这个命令的使用方式多数场景和我们的上面命令get-adgroup一起使用了。我们先来看怎么得出某个组的成员

    2022年7月13日
    15
  • c# dllimport(如何做笔记)

    DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息

    2022年4月11日
    48
  • C# Form实现自定义光标

    WinForm代码如下:1usingSystem;2usingSystem.Reflection;3usingSystem.Runtime.InteropServices;4us

    2021年12月20日
    43
  • CUDA性能优化—-kernel调优(nvprof工具的使用)

    CUDA性能优化—-kernel调优(nvprof工具的使用)1、引言本文主要介绍并行分析,涉及掌握nvprof的几个metrics参数,所用的例子是CUDA性能优化—-线程配置一文中所提到的sumMatrix2D.cu例子。接下来本文会做一些列的试验,测试环境:TeslaM2070一块,CUDA6.0,操作系统:RedHat4.1.2-50,gccversion4.1.220080704首先回顾一下sumMatrix2D的kern…

    2022年6月11日
    32
  • ASP.NET MVC4开发指南_vue mvc

    ASP.NET MVC4开发指南_vue mvcWhatistheWebGrid?TheWebGridisahelperthatwasincludedonthenewBeta1versionofASP.NETMVC3(Changescanhappenssinceitisabetaversion)thatenableustoshowdataeasily.Withasimp…

    2022年9月27日
    0
  • 傻瓜攻略(一)——MATLAB主成分分析(PCA)代码及结果分析实例「建议收藏」

    傻瓜攻略(一)——MATLAB主成分分析(PCA)代码及结果分析实例「建议收藏」主成分分析主成分分析法(PCA)是一种高效处理多维数据的多元统计分析方法,将主成分分析用于多指标(变量)的综合评价较为普遍。该方法的基本思想是运用较少的变量去解释原始数据中的大部分变异,通过对原始数据相关矩阵内部结构关系的分析和计算,产生一系列互不相关的新变量。根据需要从中选取比原始变量个数少的几个新变量,这些新的变量就是所谓的主成分,它们能够充分解释原始数据的变化。因此,主成分分析法本质上是…

    2022年5月29日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号