UTF-8转码GBK

article/2025/9/18 20:44:24

   昨天一个大学的同学问了一个关于utf-8转码gbk的问题,所以两个人一起讨论了一下关于utf-8转码成为GBK的乱码原因。

  正常情况下如果我们需要将UTF-8格式转码为GBK,我们会需要经过这样一个中转:

  通常情况下如果直接转码会出现一种情况就是GBK转码UFT-8出现乱码后乱码可以在转码回去变为原来的GBK中文。

但是UTF-8转码为GBK则会出现两种情况,在中文字符长度为偶数时是可以直接将乱码还原回去的,但是奇数情况下是无法全部转码回去的

究竟什么原因呢?

    这和UTF-8的编码字节数和GBK的编码字节数有关,我们知道UTF-8的字符集是以三个字节数来存储的,而GBK则是两个字节数,所以就存在以下问题


当“你好好”三个字转码为字符集表示的时候,一共得到九个字节,当然这九个字节转码为gbk的时候会被两两分组,所以第九个字节就会被抛弃无法识别转化为有标记的乱码符号,当我们再把乱码转回去的时候,自然就无法还原为原来的UTF-8了。如下图

所以在UTF-8转gbk的基数情况下就会出现最后一个字转码为乱码后无法还原的情况。


http://chatgpt.dhexx.cn/article/TJId9lQk.shtml

相关文章

python常用英语词汇(持续更新)

✅作者简介:大家好我是hacker707,大家可以叫我hacker 📃个人主页:hacker707的csdn博客 🔥系列专栏:python 💬推荐一款模拟面试、刷题神器👉点击跳转进入网站 一直有人问我,自己英语不…

Python常用英文单词【最强总结】

嗨嗨,我是小圆,总有人在刚了解到python的时候,会考虑一个问题 英语不好能学好python吗? 当然可以,学习python用到的单词并不是很多。 今天就给大家分享一下Python常用英文单词。 一、交互式环境与print输出 1、pr…

史上最全python常用英语单词,建议收藏

于刚才是学习python这些也足够了,一天学个六七个单词记一下在配合自己寻找的视频、书籍等等方法去学习是有一定帮助的。 这里还是要说一句,仅供兴趣爱好学习使用,个人开发者(非考虑未来靠此为生的人士)我们一起学习,一起成长。 下列常用单词大家可以复制一下,自己用Word…

【web项目部署】

一: 搭建 Java 部署环境 1: 安装 JDK 2: 安装 Tomcat 总结 3: 安装 MySQL (1): 依次安装 (2): 更改配置 (3): 启动 (4): 测试连接 二: 部署 web 项目 1: 给服务器准备好依赖的数据 2: 微调我们的 Java 代码 3: 重新打包 4: 上传到服务器上 5: 验证 ——————————————…

Web项目基本结构

C/S模式的软件 客户端/服务器 比如QQ,或者一些大型游戏 用户需要先下载软件的客户端,然后才可以使用. B/S模式的软件 浏览器/服务器 我们上网时候所访问网站的基本全是B/S模式的项目. 用户不需要下载任何东西,只需要用到浏览器就可以访问到这个项目. 我们在java中要学习的web项…

web编程项目

web编程项目 一 项目要求 二 项目实现 该项目使用了以下模块: express-session:是express中的一个处理session的中间件。有以下特点:session管理(基本功能),cookie签名,可替换持久储存模块。 在app.js中,设置session的各个参数。…

IDEA(2021)创建Java Web项目

1. IDEA(2021)创建Java Web项目 1.1. 创建Java项目 创建新项目"New Projpect";选择"Java"项目,默认直接下一步 “Next”,下一步“Next”。输入项目名称“Project Name” 和 选择项目路径"Project location"&…

使用idea创建web项目

前言: 很高兴能够用自己所学知识为你提供答疑!!! 今天我就来操作下如何使用idea这款软件创建web项目。步骤: 1.创建项目 首先新建一个项目 然后选择最后一个,创建一个空白的Java项目,点击Next。 这个时…

eclipse开发web项目

对比idea开发web项目 ###1,使用eclipse开发web项目(jsp项目) 1,先将eclipse与tomcat关联一下 window->preferences->server->Runtime Environments add 还要在面版配置一次, 创建项目: File->…

java web项目的创建

1、启动Eclipse,执行菜单【File】——【new】——【other】——【web】——【Dynamic Web Project】。 2、单击【Next】按钮,进入填写工程信息界面。 3、单击【Next】按钮,进入工程配置界面。 4、单击【Next】按钮,进入工程选项界…

IDEA如何创建web项目

前言: 很多朋友可能在学习java基础的时候已经熟练掌握了IDEA创建java项目的基本步骤,但随着学习技术的不断深入,不同的IDEA版本可能在项目的创建页面上出现些许的出入,下面将细讲IDEA2021版本如何创建并部署Javaweb项目。 步骤一…

JavaWeb项目介绍

web项目:通俗的说就是在服务器上跑的项目,页面是通过服务器上的程序运算所得到的结果。常见的web项目按计算机语言分,有:Java Web(Java EE)、ASP.Net、PHP项目。 JavaWeb项目:顾名思义就是后台用java代码写的web项目。…

创建web项目

打开eclipse,打开Eclipse,将Java视图切换成JavaEE的视图: 点击【File】-【New】-【Dynamic Web Project】 写入web项目名字; 向web配置Tomcat服务器,根据项目需要 后面的选项默认,点击【Next】&#xff…

springboot---建一个web项目

搭建过程 1. File->new->project 2. 选择“Spring Initializr”,jdk选择8最好,或者默认 3. 完善项目信息 组名可不做修改,项目名可做修改;最终建的项目名为:test,src->main->java下包名会是…

五、IDEA中创建Web项目

文章目录 5.1 创建Web项目5.1.1 创建项目5.1.2 编写Servlet类 5.2 手动部署项目5.3 自动部署项目5.3.1 IDEA集成Tomcat5.3.2 IDEA部署JavaWeb项目 5.4 war包部署5.4.1 导出war包 5.1 创建Web项目 5.1.1 创建项目 1、打开IDEA,单击“New Project”或者通过File–&g…

JavaWeb:Maven创建Web项目

1.1 Web项目结构 Web项目的结构分为:开发中的项目和开发完可以部署的Web项目,这两种项目的结构是不一样的,我们一个个来介绍下: Maven Web项目结构:开发中的项目 开发完成部署的Web项目 开发项目通过执行Maven打包…

如何在IDEA中创建Web项目

👌 棒棒有言:也许我一直照着别人的方向飞,可是这次,我想要用我的方式飞翔一次!人生,既要淡,又要有味。凡事不必太在意,一切随缘,缘深多聚聚,缘浅随它去。凡事…

Intellij IDEA创建web项目 [超详细]

一、介绍、 接触Java 有些年头了,相信大家已经忘记了怎么创建一个不使用构建工具和任何Java Web框架的原始Java Web项目。最近接触一个老项目,就是使用很原始的方式搭建的,虽然使用了Spring的技术,但是没有使用构建工具&#xff…

部署Web项目 (Linux)

部署Web项目 -- Linux 一、Linux 环境搭建二、Linux 常用命令三、搭建 Java 部署环境3.1 JDK3.2 Tomcat3.3 MySQL 四、部署 Web 项目4.1 什么是部署4.2 数据库建表4.3 构建项目并打包4.4 拷贝到 Tomcat 中4.5 验证 一、Linux 环境搭建 这里我们使用的方法是购买云服务器 (Cent…

idea构建web项目-超详细教程

1、idea构建web项目 idea构建web项目的超级详细教程,一步一步来,完全没问题! 1、新建一个空项目 2、新建java模块,名为webDemo1 3、选择webDemo1右键,选择Add Framework Support 选择Web Application 4、在WEB-…