java中String的getBytes的用法

Java中的String类getBytes()方法详解与实例 在本文中,我们学习了Java String类的getBytes()方法,它允许将字符串转换为字节数组,并且可以指定字符编码方式。通过实例和代码演示了使用平台默认字符编码和指定UTF-8、ISO-8859-1字符编码的情况。getBytes()方法在处理字符串和字节数据之间的转换时非常有用,特别是在跨平台和处理不同字符集的情况下。记得在使用指定字符编码方式的方法时,处理可能会抛出UnsupportedEncodingException异常的情况。 阅读详情

今天要分享的内容是java的string方法getBytes

先看一个测试用例


import java.io.UnsupportedEncodingException;

/**
 * @author hankun
 * @create 2017-06-26 20:28
 */
public class testGetBytes {
    /**
     *
     * 1、Unicode是一种编码规范,是为解决全球字符通用编码而设计的,而rUTF-8,UTF-16等是这种规范的一种实现。

     2、java内部采用Unicode编码规范,也就是支持多语言的,具体采用的UTF-16编码方式。

     3、不管程序过程中用到了gbk,iso8859-1等格式,在存储与传递的过程中实际传递的都是Unicode编码的数据,要想接收到的值不出现乱码,就要保证传过去的时候用的是A编码,接收的时候也用A编码来转换接收。

     4、如果双方的file.encoding确保都相同,那就省事了,都默认转了,但往往在不同项目交互时很多时候是不一致的,这个时候是必须要进行编码转换的。

     5、无论如论转换,java程序的数据都是要先和Unicode做转换,这样也就是能处理多语言字符集的原因了。底层保持了一致,只要在传值和接值的时候也一致就肯定不会出现乱码了。
     * */

    public static void main(String[] args) throws UnsupportedEncodingException {


        String str = "中文字符";

        System.out.println("original string---" + str);// 会正常输出原始串

        /**
         *
         * str.getBytes();  如果括号中不写charset,则采用的是Sytem.getProperty("file.encoding"),即当前文件的编码方式,
         *
         * 很多人写的是系统的默认编码,通过代码测试并非如此,实际得到的是文件的编码方式*
         *
         * str.getBytes("charset");//指定charset,即将底层存储的Unicode码解析为charset编码格式的字节数组方式
         *
         * String new_str=new String(str.getBytes("utf-8"),"gbk"));
         *
         * //将已经解析出来的字节数据转化为gbk编码格式的字符串,在内存中即为gbk格式的字节数组转为Unicode去交互传递
         */

        String new_str = new String(str.getBytes("utf-8"), "gbk");

        /**
         *
         * 此时的输出是乱码,在UTF-8的file.encoding下输出gbk格式的数据肯定是乱码,但是new_str的确是gbk编码式的
         *
         * 此时的乱码源于encoding不符,但gbk格式的new_str本身数据并没有问题,通过下面的转换也可以看得出来
         */

        System.out.println("new string----" + new_str);

        String final_str = new String(new_str.getBytes("gbk"), "utf-8");// 此处的含意与最上边的注释是一致的参数含意

        /**
         *
         *输出是正常的,此时将gbk编码格式的new_str字符串,用gbk这个charset去解析它,然后用utf-8再转码一次,
         *
         * 因为new_str确实是gbk格式的,才能经过utf-8编码得到正常的数据显示。
         */

        System.out.println("final string---" + final_str);

    }

}
}

简单总结

1. 首先,你要明白,什么是uinicode,她和utf-8,以及utf-16,是什么关系
2. 其实,你要知道,java中是用了,utf-16
3. 再深入一点,就是,你也必须知道byte这个类型,就是所谓的字节数组了
4. 他和int的区别,怎么转换
5. byte数组里面存储的内容,怎么转换成对应的中文字符的?什么编码映射关系,转过去的?
6. 还有就是,你会经常看到0xff,这种,还有&,按位于的这种操作,具体是什么含义
7. 大小端的问题,是什么意思?在网络里面如何区分?

这个地方,之前其实就一直看过,每次看完一遍,以为真的懂了,但是,过后,还是不知道,啥原理

这次,写过了,可能过一段时间又忘记了,但是,如果真正的理解了原理的话,就难忘记了

这个地方,不管前后端,都必须掌握

去看ruan大神的,那片,unicode文章,绝对有收获。

AD620仪表放大器模块实战:从双电源切换到单电源供电的完整指南(附原理图) 本文深入探讨了AD620仪表放大器模块从双电源切换到单电源供电的常见陷阱与正确方案。通过解析AD620的内部架构与电气特性,指出其“天生”依赖双电源,简单的跳线改装会导致芯片损坏或失效。文章提供了基于AD623芯片的真正单电源替代方案,并附有原理图与实战波形对比,为便携式设备设计提供了完整指南。 阅读详情

相关推荐

Spring AI实现RAG(检索增强生成)详解与实践

支持多种文件格式的文档加载实现高效的向量存储和检索构建智能的问答系统提供可追溯的知识服务RAG技术为AI应用提供了强大的知识增强能力,使得模型能够基于实际文档生成准确、可靠的回答。

beiduofen2011的专栏 1237

Java中的String的getBytes()方法

在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。 这个表示在不同的OS下,返回的东西不一样。 String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如: byte[] b_gbk = "中".getBytes("GBK"); byte[] b_utf8 = "中".getBytes("UTF-8"); byte[] b_iso88591 = "中".getBytes("ISO8

zengjyxxz的博客 7347

esim分布式云卡池技术

eSIM卡,即Embedded-SIM,嵌入式SIM卡。eSIM卡的概念就是将传统SIM卡直接嵌入到设备芯片上,而不是作为独立的可移除零部件加入设备中,用户无需插入物理SIM卡。这一做法将允许用户更加灵活的选择运营商套餐,或者在无需解锁设备、购买新设备的前提下随时更换运营商。未来通用的eSIM标准建立将为普通消费者、企业用户节省更多移动设备使用成本,并带来更多的便利、安全性。 2018年 3月7日,中国联通宣布,正式在上海、天津、广州、深圳、郑州、长沙6座城市率先启动“eSIM一号双终端”业务的办理。[.

著名博客 3707

关于Java里面的String.getBytes()方法

关于Java里面的String.getBytes()方法 Java里面的String类型的编码方式是根据你项目字符串的编码方式有关,如果你使用的是GBK编码方式,那么你通过string里面的getBytes()方式获取的字符的字节是2。如果使用的是UTF-8编码的方式,那么一个字符getBytes()方式获取的字符的字节长度应该是3. 下面给个例子进行展示: String str ="你好"; //project的字符集是UTF-8 byte[] B = str.getBytes();

qq_43203949的博客 1万+

航空机载总线网络概述

1.机载总线网络概述 现代战斗机的航空电子系统是航空电子技术经历了半个多世纪的漫长演变和不断进步的结果。航空电子系统结构的每次变化,其核心的机载总线网络技术也不断跨上新台阶,而且每次变革都能使飞机性能得到大幅提升。现代飞机的飞行与作战任务包括起飞、巡航、飞行控制、目标搜索、识别跟踪、火控计算、武器投射、制导、电子战、通信等,都需要航空电子系统承担,航空电子系统是现代战斗机的“大脑”和“神经中枢”,机载总线网络则是其关键的“神经网络”。在机载通讯领域发展过程中,具有代表性的典型总线有ARINC429、1553

qq_41854911的博客 1万+

WPF+Prism+LiveCharts+materialdesignin 搭建WPF开发框架

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容。

T_Tboy的博客 3049

Java String.getBytes()详解&Properties load方法 中文乱码

最近做项目,业务问为啥utf-8的properties文件中文值 load后乱码,还问我什么原因,分析了源码,终于知道了原因。知道了为什么properties需要Unicode编码的原因。properties utf-8编码文件读取到properties ,中文乱码是由于读取char的过程使用ISO8859-1编码。properties load读取分为字节流和字符流,字符流不会编码。

qq_43842093的博客 1809

SAP农产品增值税进项税解决方案

(三)购进农产品用于生产经营且不构成货物实体的(包括包装物、辅助材料、燃料、低值易耗品等),用于生产适用13%税率货物的扣除率为10%,用于生产适用9%税率货物的扣除率为9%。具体计算公式为: 当期允许抵扣农产品增值税进项税额=当期耗用农产品数量×农产品平均购买单价×扣除率/(1+9%)

weixin_44228539的博客 1194

java中String的getByte()方法

Java getBytes() 方法Java String类getBytes() 方法有两种形式:getBytes(String charsetName): 使用指定的字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。getBytes(): 使用平台的默认字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。语法public byte[]...

中二少年的编程之路 1万+

69、SAP数据库归档重做日志备份策略与工具详解

本文详细解析了SAP数据库归档重做日志备份的重要性及策略,介绍了SAP提供的备份工具brarchive及其配置和使用方法,探讨了BRBACKUP与BRARCHIVE的联合运行、一致在线备份、备用数据库备份场景以及备份策略的综合应用与优化。此外,还分析了备份过程中常见问题的解决方法、备份监控与评估流程、与第三方备份解决方案的集成方式,以及未来备份技术的发展趋势和应对策略。通过合理运用这些策略和工具,可以有效保障SAP数据库的安全性和可恢复性。

peace的博客 133

ResNet改进(7):添加 SK注意力机制

实现 SK 注意力机制。

2401_82355416的博客 730

string java getbytes_java中的String.getBytes()的用法

在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不通OS下,返回的东西不一样!String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如byte[] b_gbk = "中".getBytes("GBK");byte[] b_utf8 = "中".getBytes(...

weixin_39841002的博客 428

Python 爬虫实战:就业市场趋势数据抓取与行业洞察

在当今竞争激烈的就业市场中,了解行业趋势和就业形势对于求职者、学生以及人力资源专业人士来说至关重要。通过获取和分析就业市场数据,我们可以深入了解不同行业的招聘需求、薪资水平、技能要求等关键信息,从而为职业规划和人才发展提供有力支持。

yansideyucsdn的博客 1406

java中String.getBytes()的用法

java中String.getBytes()的用法 public class Stringg { public static void main(String[] args) { String str="abc"; System.out.println(str.getBytes()); System.out.println(str.getBytes()); } } getByt

evilcry2012的专栏 3099

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java中的String.getBytes()的用法

在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不通OS下,返回的东西不一样!String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如byte[] b_gbk = "中".getBytes("GBK");byte[] b_utf8 = "中".getByt...

weixin_30294021的博客 116

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

java中new String(str.getBytes(“gbk”),“gbk”)编码解码用法详解

前提是str存放的是汉字 一、如果是new String(str.getBytes(“gbk”),“gbk”)时,可以分为两步:       第一步:byte[] bytes=str.getBytes(“gbk”)         告诉java虚拟机将中文以“gbk”的方式转换为字节数组。一个汉字对应两个字节。       第二步:String s=new String(bytes,“gb...

ChasonYang 5872

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java中new String(str.getBytes(“gbk”),“gbk”)用法详解

new String(str.getBytes(“gbk”),“gbk”)的用法详解 前提是str存放的是汉字 一、如果是new String(str.getBytes(“gbk”),“gbk”)时,可以分为两步:       第一步:byte[] bytes=str.getBytes(“gbk”)         告诉java虚拟机将中文以“gbk”的方式转换为字节数组。一个汉字对应两个

技术专栏 4万+

java string.getbytes_Java String.getBytes()编码

在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不通OS下,返回的东西不一样!String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如byte[] b_gbk = "中".getBytes("GBK");byte[] b_utf8 = "中".getBytes(...

weixin_34432821的博客 356

String的getBytes()方法

String的getBytes()方法 这是一篇转帖: 本文来自优快云博客,转载请标明出处:http://blog.csdn.net/maxracer/archive/2010/12/14/6075057.aspx 在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这表示在不同的操作系统下,返回的东西不一样!

HuiSirBlog 3494

Java中String与StringBuffer的基本用法与区别

String repalceFirst(String,String) 将第一次出现的某个内容替换成指定的内容。String replaceAll(String,String) 将某个内容全部替换成指定内容,支持正则。String replace(String,String) 将某个内容全部替换成指定内容。String substring(int,int) 从下标x截取到下标y-1对应的元素。String substring(int) 从指定下标开始一直截取到字符串的最后。4.和改变内容有关的方法。

m0_73566497的博客 586

Java中getBytes()方法--使用详解

getBytes()方法详解 在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这表示在不同的操作系统下,返回的东西不一样! 1、 str.getBytes();  如果括号中不写charset,则采用的是Sytem.getProperty("file.encoding"),即当前文件的编码方式,  2、  str.getBytes("chars

ljheee的博客 4万+

String.getBytes()

在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组.这个表示在不通Operation System下,返回的东西不一样! String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如:byte[] b_gbk = "中".getBytes("GBK");byte[] b_u...

weixin_34092455的博客 94

java中string类_Java中String类浅谈

1)String对象的初始化由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下: String s = “abc”; s = “Java语言”; 其实按照面向对象的标准语法,其格式应该为: String s = new String(“abc”); s = new String(“Java语言”);...

weixin_31433053的博客 125

Java 之 String 的用法及相关注意(网摘)

<br />一、String方法列表<br />1、length() 字符串的长度<br />   例:char chars[]={'a','b'.'c'};<br />     String s=new String(chars);<br />     int len=s.length();<br />2、charAt() 截取一个字符<br />   例:char ch;<br />     ch="abc".charAt(1); 返回'b'<br />3、 getChars() 截取多个字符

zzbatluzhou的专栏 1336

java中String类所有用法

文章目录new和直接赋值的区别+拼接字段用法lastIndexOf(int ch)format连接可变字符串concat(String str)intern()replace(char oldChar, char newChar)replace(CharSequence target, CharSequence replacement)replaceAll(String regex, String replacement)replaceFirst(String regex, String replaceme

qq_40776361的博客 1268

getBytes()

getBytes() 1释义编辑 getBytes()是将一个字符串转化为一个字节数组。String的getBytes()方法是得到一个系统默认的编码格式的字节数组。将一个string类型的字符串中包含的字符转换成byte类型并且存入一个byte数组中。在java中的所有数据底层都是字节,字节数据可以存入到byte数组。存储字符数据时(字符串就是字符数据),会先进行查表,然后将

evilcry2012的专栏 657
上一篇: 关于Java中的ThreadLocal用法
下一篇: java中string的不可不知的编码知识
Scofield-
博客等级 码龄14年 12粉丝 107原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值