字符集,编码方式和Java程序乱码问题

news2024/11/15 16:02:33

目录

1,字符编码

2,三大字符集及编码方式

2.1,ASCII字符集及编码方式

2.2,GBK字符集及编码方式

2.3,Unicode字符集及编码方式

 3.程序乱码问题


1,字符编码

数字计算机中的存储器唯一可以存储的是比特(bit),因此如果要想在计算机上处理信息,就必须把它们按位存储。为了将文本表示为数字形式,我们需要构建一种系统来为每一个字母赋予一个唯一的编码。数字和标点符号也算做文本的一种形式,所以它们也必须拥有自己的编码。

所有由符号所表示的字母和数字(Alphanumeric)都需要编码。具有这种功能的系统被称为字符编码集(Coded Character Set),系统内的每个独立编码称为字符编码(Character Codes)。1

2,三大字符集及编码方式

2.1,ASCII字符集及编码方式

ASCII码就是一种被广泛使用的字符编码标准,它被称为美国信息交换标准码(American Standard Code for Information Interchange),简称为ASCII码,发音很像ASS-key。从1967年正式公布至今,它一直是计算机产业中最重要的标准。

ASCII码字符集只包含对英文字母,数字,标点符号和特殊字符的映射关系,并不包含汉字,对字符的编号称作码点,将对应的码点进行编码(十进制转为二进制——ASCII码的编码方式),使用一个字节对二进制码进行存储,ASCII码的首位都是0。如下图:

注意:这里有一个小细节,由于美国人将其所有的字符进行映射之后,最大的码点就是127,那么它对应的二进制编码就是1111111只有7位,但是我们知道计算机底层的最小存储单元是一个字节,所以美国人在不满八位的编码前面进行补零所以127对应的编码就是01111111。 

2.2,GBK字符集及编码方式

如下图:这里要注意的是,在GBK编码中,一个中文字符是由两个字节存储,对于字母和数字等还是使用一个字节进行存储,也就是说GBK字符集是兼容ASCII字符集的

2.3,Unicode字符集及编码方式

Unicode,统一码,也叫万国码,学名是"Universal Multiple-Octet Coded Character Set",简称为UCS。现在用的是UCS-2,即2个字节编码,而UCS-4是为了防止将来2个字节不够用才开发的。

相对于ASCII的7位编码,目前Unicode采用了16位编码,每一个字符需要2个字节。也就是说Unicode的字符编码范围为0000h~FFFFh,总共可以表示65,536个不同字符。全世界所有的人类语言,尤其是经常出现在计算机通信过程中的语言,都可以使用同一个编码系统,而且这种系统还具备很高的扩展性。

基于Unicode字符集的的编码方式有utf-8,utf-16和utf-32,这里来略微地讲一些utf-32和utf-8.

utf-32:这种编码方式是国际组织最早提出来的编码方式,但是比较鸡肋,因为他对每一个Unicode字符集的编号的存储都是使用四个字节进行存储,这种存储方式既浪费存储空间,又影响寻址速度。如下图,对01100001进行编码。


utf-8:

 3.程序乱码问题

出现乱码的问题,是因为编码方式和解码方式不一样。

Java对String类对字符串的解码和编码提供了方法。

 在这里我们对“a我b”这个字符串进行编码和解码,但是在最后,我们在对bytes1进行解码的时候,发现出现了中文乱码,这是因为使用GBK进行的编码,使用的是utf-8进行的解码,平台默认提供的是utf-8进行的解码,所以出现了乱码。那么我只需要将代码改为String s2 = new String(bytes1,"GBK");就不会再出现乱码。

本篇博客对字符集和编码方式的介绍就到这里,如果本篇博客对你有帮助的话,请点一个小赞支持一下,感谢!我们下篇博客再见! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/731120.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

绿虫生产效率提升工具怎么安装配置?

一、添加员工 打开绿虫生产效率提升工具后台,输入账号密码登录,登录成功之后,需要先进行员工添加,点击员工管理,导入员工信息,也可使用企微同步。 二、绑定员工 点击终端部署,复制网址或下载安…

多模态系列论文----最详细的多模态论文总结(BLIP、BEIT、CoCa等)

1 多模态概述 多模态指的是多种模态的信息数据,包括:文本、图像、视频、音频等。多模态任务是指需要同时处理两种或多种不同类型的数据的任务。近年来,随着深度学习技术的发展,多模态任务取得了显著的进步。特别是VIT&#xff08…

【WebSocket】SpringBoot整合WebSocket实现聊天室(一)

目录 一、准备 1、引入依赖 2、创建配置类 二、相关注解 一、准备 1、引入依赖 首先我们需要在项目中引入依赖&#xff0c;有两种方式。第一种我们可以在创建Spring Boot项目时搜索WebSocket然后勾选依赖 第二种是我们可以直接在项目的pom.xml文件中插入以下依赖 <dep…

基于TF-IDF+Tensorflow+PyQt+孪生神经网络的智能聊天机器人(深度学习)含全部Python工程源码及模型+训练数据集

目录 前言总体设计系统整体结构图系统流程图孪生神经网络结构图 运行环境Python 环境TensorFlow 环境 模块实现1. 数据预处理2. 创建模型并编译3. 模型训练及保存4. 模型应用 系统测试1. 训练准确率2. 测试效果3. 模型生成 工程源代码下载其它资料下载 前言 本项目利用TF-IDF&…

[VUE学习】从头搭建权限管理系统前端-初始化

1.安装Node 2.安装Vue Cli vue的一个脚手架 npm install -g vue/cli 3.vue ui搭建vue项目 cmd 运行 vue ui 然后创建新项目 选择npm 选择配置 Babel 是编译的 Router 是路由 vuex 是状态保存的 Linter/fomatter 代码检测和格式化 创建完成 这个时候 代码在我们本地…

Spring Boot 中的 Criteria 是什么,如何使用?

Spring Boot 中的 Criteria 是什么&#xff0c;如何使用&#xff1f; 介绍 Spring Boot 是一个流行的 Java Web 开发框架&#xff0c;它提供了一些强大的工具和库&#xff0c;使得开发 Web 应用程序变得更加容易。其中之一是 Criteria API&#xff0c;它提供了一种类型安全的…

电脑免费简单又好用的记事本app软件推荐

很多职场人士在办公时都需要用到电脑&#xff0c;在电脑上有很多好用的工具软件可以用来辅助工作的展开&#xff0c;其中记事本类的App就有不少优质软件存在。那电脑免费简单又好用的记事本app软件推荐哪些呢&#xff1f;这里小编就以自己的Windows10电脑为例&#xff0c;为大家…

山西电力市场日前价格预测【2023-07-09】

日前价格预测 预测明日&#xff08;2023-07-09&#xff09;山西电力市场全天平均日前电价为386.09元/MWh。其中&#xff0c;最高日前价格为505.65元/MWh&#xff0c;预计出现在21: 30。最低日前电价为286.38元/MWh&#xff0c;预计出现在13: 30。 以上预测仅供学习参考&#x…

ModaHub魔搭社区:向量数据库Zilliz Cloud向量搜索和查询教程(一)

目录 概述 开始前 单向量搜索 本文介绍如何在 Zilliz Cloud 中执行近似最近邻&#xff08;Approximate Nearest Neighbour&#xff0c;ANN&#xff09;搜索和查询。搜索是指在 Collection 中查找与指定查询向量最接近的向量&#xff0c;查询是基于指定条件筛选出满足条件的数…

一文看懂ChatGPT与存算一体化

ChatGPT开启大模型“军备赛”&#xff0c;存储作为计算机重要组成部分明显受益: ChatGPT开启算力军备赛&#xff0c;大模型参数呈现指数规模&#xff0c;引爆海量算力需求&#xff0c;模型计算量增长速度远超人工智能硬件算力增长速度&#xff0c;同时也对数据传输速度提出了…

mysql练习---对表进行插入、更新与删除

环境&#xff1a; 第一题 (1) 创建表 create table pet( name varchar(20) not null comment 宠物名称, owner varchar(20) comment 宠物主人, species varchar(20) not null comment 种类, sex char not null comment 性别, birth year not null comment 出生日期, death …

HTML转EXE工具(23.7.7.0)使用说明

目录 一、注册账号和不注册有什么区别&#xff1f; 二、如何注册账号&#xff1f; 三、如何自定义about框&#xff1f; 四、如何选择打包网站还是Web项目&#xff1f; 五、如何设置程序基本信息&#xff1f; 六、什么是程序启动最大化和无标题&#xff1f; 七、程序生成…

Android之内存泄漏与内存溢出

Android之内存泄漏与内存溢出 概览 内存泄漏&#xff08;memory leak&#xff09;&#xff1a;是指程序在申请内存后&#xff0c;无法释放已申请的内存空间&#xff0c;导致系统无法及时回收内存并且分配给其他进程使用。通常少次数的内存无法及时回收并不会到程序造成什么影响…

快讯|​2023 FOX Upfront 主打 Tubi

在每月一期的 Tubi 快讯中&#xff0c;你将全面及时地获取 Tubi 最新发展动态&#xff0c;欢迎关注【比图科技】&#xff0c;一起成长变强&#xff01; 2023 FOX Upfront 主打 Tubi 2023 年 5 月 15 日&#xff0c;FOX 在纽约曼哈顿中心举行一年一度的 FOX Upfront&#xff0c…

行业追踪,2023-07-03,汽车零部件开始调整,继续跟踪等待参与第二波行情吧

自动复盘 2023-07-03 成交额超过 100 亿 排名靠前&#xff0c;macd柱由绿转红 成交量要大于均线 有必要给每个行业加一个上级的归类&#xff0c;这样更能体现主流方向 rps 有时候比较滞后&#xff0c;但不少是欲杨先抑&#xff0c; 应该持续跟踪&#xff0c;等 macd 反转时参与…

【通览一百个大模型】FLAN(Google)

【通览一百个大模型】FLAN&#xff08;Google&#xff09; 作者&#xff1a;王嘉宁&#xff0c;本文章内容为原创&#xff0c;仓库链接&#xff1a;https://github.com/wjn1996/LLMs-NLP-Algo 订阅专栏【大模型&NLP&算法】可获得博主多年积累的全部NLP、大模型和算法干…

pytorch学习指南---安装anaconda ,pytorch

pytorch 和tenserflow并驾齐驱&#xff0c;但是&#xff0c;pytorch更好理解。所以选择学习pytorch。 安装anaconda&#xff1a; https://blog.csdn.net/fan18317517352/article/details/123035625 教程&#xff1a;bilibili up主&#xff1a;一只小土堆 构建pytorch空间 py…

密码学学习笔记(九):Public-Key Encryption - 公钥加密2

Rivest-Shamir-Adleman (RSA) - 经典非对称加密算法 如果我们知道&#x1d45d;, &#x1d45e; &#xff08;即&#x1d441; &#x1d45d;&#x1d45e;) 我们可以在mod N中进行反幂运算。 比如&#xff1a; 我们有一个单向陷门函数&#xff0c;非常适合加密。 “教科书式”…

【2023年成都七中NOIP联赛】游记

Day 1&#xff1a; 8:30&#xff1a; 睡懒觉&#xff0c;一觉睡到 8:30&#xff0c;“嘟嘟嘟”的电话声响起&#xff0c;迷迷糊糊睁开眼睛&#xff0c;快点&#xff0c;去成都七中…… 没错&#xff0c;我连今天要考试都不知道&#xff08;其实昨天老师给我发了消息的&#…

算法 | 滑动窗口算法笔记

滑动窗口&#xff1a;核心思想 核心思想&#xff1a;维护一个窗口&#xff08;又叫做子区间&#xff09;&#xff0c;通过调整窗口的起始位置&#xff08;start&#xff09;和终止位置&#xff08;end&#xff09;&#xff0c;来寻找符合特定条件的子区间。 滑动窗口算法常常…