字符集与编码

字符和字节

字节

即byte,是Java中的一种基本数据类型,在计算机中,1byte = 8bit,1个字节等于8个比特位
字节是计算机中数据存储的最小单位,我们通常都是说 该文件是多少字节,也就是多少byte
计算机中的内存换算就是采用byte作为单位
例如:1 KB = 1024 byte1 MB = 1024 KB1 GB = 1024 MB1 TB = 1024 GB
实际上,一个字节本质就是8位二进制,计算机中采用二进制的方式来存储数据.8个二进制位能表示的范围就是255

字符

字节是计算机中存储的基本单位,字符是现实生活中人们使用的记号,简单来说,字符就是一种记号.
现实生活中,"a","中","国"等都是一个字符.

字节和字符的关系

想象一下,计算机只知道字节,而在现实生活中,人们只知道字符,那要怎么把字符跟字节联系起来呢?
于是,这就产生了编码的概念.
所谓编码,通俗来讲,就是将字符与字节之间进行转换.
字符会按照一定的编码规则变成字节,在不同的编码规则中,一个字符可能由一个字节存储,也可能有多个字节存储

字符集

字符集也就是字符的集合,包含了很多字符.

编码与解码

String编码

方法名称 说明
byte[] getBytes() 使用平台的默认字符集将该String编码为一系列字节,将结果存储到新的字节数组中
byte[] getBytes(String charsetName) 使用指定的字符集将该String编码为一系列字节,将结果存储到新的字符数组中

String解码

构造器 说明
String(byte[] bytes) 通过使用平台的默认字符解码指定的字节数组来构造新的String
String(byte[] bytes,String charsetName) 通过指定的字符集解码指定的字节数组来构造新的String

代码演示

     // 把文字转换成字节String name = "我爱你中国";// 编码 : 中文编码成字符byte[] bytes = name.getBytes(StandardCharsets.UTF_8);System.out.println(Arrays.toString(bytes));// 解码 : 字符编码成中文 把字节转成对应的中文形式 (编码 和 解码 的标准要相同 否则会出现乱码)String rs = new String(bytes);System.out.println(rs);

Java中字符与字节常识相关推荐

  1. java中字符和字节的转换_Java最佳实践–字符到字节和字节到字符的转换

    java中字符和字节的转换 在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优. 特别是,我们将着重于使用默认编码时如何有效地处理字符到字节和字节到字符 ...

  2. java中字符和字节的区别是什么?

    关于java字符的文章早已是非常多了,本文是对我个人过往学习java,理解及应用java中字符的一个总结.此文内容涉及字符和字节的基本概念,以及java中字符和字节的区别是什么等相关问题,希望对大家有 ...

  3. java中字符与字节的编码关系

    为什么80%的码农都做不了架构师?>>>    一个英文字母字符存储需要1个字节.在 GB 2312 编码或 GBK 编码中,一个汉字字符存储需要2个字节. 在UTF-8编码中,一个 ...

  4. java字节字符_java中字符和字节的区别

    byte(字节): byte即字节的意思,是java中的基本数据类型,用来申明字节型的变量,一个字节包含8个位,所以,byte类型的取值范围是-128到127. 通常在读取非文本文件时(如图片,声音, ...

  5. c语言中大写英文字母所占字节,Java中字符编码和字符串所占字节数 .

    首 先,java中的一个char是2个字节.java采用unicode,2个字节来表示一个字符,这点与C语言中不同,C语言中采用ASCII,在大多数 系统中,一个char通常占1个字节,但是在0~12 ...

  6. java中图片和字节数组相互转化

    java中图片和字节数组相互转化 方案一:使用ImageIO来实现 将图片转化为字节数组 /*** 通过图片路径将图片文件转化为字符数组* * @param url 图片路径* @return byt ...

  7. java中字符流和字节流的区别_java中字节流和字符流有哪些区别

    java中字节流和字符流的区别有:1.定义不同:2.结尾不同:3.处理方式不同:4.缓冲区不同:5.编码方式不同.字节流默认不使用缓冲区,而字符流使用缓冲区.字节流采用ASCII编码,字符流采用uni ...

  8. ACM试题 - ASCII码排序 - Java中字符与对应ASCII码的转换

    Java中字符转换对应ASCII码有两种方式: 第一种: char c = 'a'; byte b = (byte)c; // b=97 第二种: char c = 'a'; int b = c; / ...

  9. java中字符流 字节流_理解Java中字符流与字节流的区别

    1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可 ...

最新文章

  1. SpringBoot中实现quartz定时任务
  2. 软件测试实验--性能测试工具LoadRunner
  3. win10 窗口无边框
  4. php如何替换 前的空格,php空格如何替换
  5. Auto Layout 和 Constraints
  6. python 字符串去重且相同字符最多出现2次_【Python】获取字符串中出现次数最多/少的字符...
  7. 棋牌游戏服务器设计(1)
  8. 服务器 '' 上的 MSDTC 不可用。
  9. 单片机:51最小单片机系统
  10. 如何写好科研论文(笔记)
  11. android实现蓝牙耳机的连接及列表的管理
  12. Sitemap网站地图生成工具(适用于所有网站)
  13. mysql 基于idb文件恢复数据
  14. 使用IDEA创建maven项目却没有src目录的问题
  15. 第十一课 模糊工具、海绵工具、仿制图章工具
  16. SQL2008R2x64无人值守一键安装
  17. 如何高效开发一个OA办公系统?
  18. 计算机编程语言用英语怎么说,计算机编程语言(国外英文资料).doc
  19. 亚马逊库存下载 php,下载库存报告
  20. BadCode之魔鬼数字

热门文章

  1. 详解笔记本电脑开机黑屏如何解决
  2. php咕咚授权,线上跑扬马一样精气神 授权咕咚举办万跑友已报名
  3. 华为 IPv6与IPv4
  4. iconfont阿里图标引入不生效的解决方法,三种引入方式详细步骤。
  5. 时序分析寄存器到寄存器
  6. 简单搜索app产品分析
  7. vue脚手架vue-cli的卸载与安装方式
  8. Project*** is not configured as a MyEclipse Web-Struts Project. Therefore the MyEclipse Struts
  9. Debugging with Xdebug and Sublime Text 3
  10. Java,看完我工资从12K变成了20K