不同编码格式特点--附keil、VSCode编码格式修改

目录

前言

什么是编码格式

ASCII

GBK

UTF-8

对比

应用

keli

VSCode


前言

从编程入门到现在,我发现用不同软件打开同一文件时常会出现乱码问题,尤其是中文内容。究其原因,主要是各软件采用的文本编码格式不同所致。这种编码差异在文本处理中尤为常见,本文将系统梳理各类编码格式的特点。

什么是编码格式

简而言之,这是指内容的二进制存储形式。比如这篇文章,虽然我们看到的是中文,但在计算机中实际存储的是二进制代码。每个中文字符都对应特定的二进制编码,这些编码构成了文字的存储格式。计算机通过统一的编码解码标准,就能实现内容的存储与显示。

ASCII

最常用的编码格式,一般只要是能显示内容的芯片都支持该格式。

ASCII特点
  • 7位二进制数表示(范围0-127即0x00-0x7F),常用1字节8位存储(最高位不用)
  • 95个可打印字符(常见英文标点符号和大小写字母)
  • 33个控制字符
  • 可拓展为8位(非标准)

GBK

中文简体字符,较早的中文标准,解决ASCII只能存储英文的局限性。

GBK特点
  • 英文1字节8位,中文2字节16位
  • 汉字支持2万多字符(包括繁体字,生僻字)
  • 可拓展,且支持部分日文假名、希腊字母等符号
  • 完全兼容GB2312

UTF-8

可表示全球所有字符,txt文件默认编码方式,也是最常见的编码方式之一,但一些低级显示器不支持,仅至此ASCII,如果要显示其它内容需要使用字模软件。

UTF-8特点
  • 1-4字节存储
  • 可表示全球所有字符
  • 完全兼容ASCII
  • 兼容性好,空间效率高

因此我们优先推荐使用UTF-8表示,同时需要注意:确保文本存储(保存)与读取(打开)时使用相同的编码格式

对比

|-------|---------|-------------------|---------------------|
| 常见编码方式对比 ||||
| 编码 | 占用位数 | 表示内容 | 特点 |
| ASCII | 7bit/1B | 英文大小写、0~9、常见英文字符 | 默认7bit, 但常用1B 最高位为0 |
| GBK | 1~2B | 大部分汉字(包括生僻字和繁体字) | 可表示希腊字符等 |
| UTF-8 | 1~4B | 全球所有字符 | 兼容ASCII |

应用

解决乱码问题

当打开一个文档,出现乱码大概率就是文档的编码格式和软件的编码格式不一致,特别是同一份文件在某个软件打开正常却在另一个软件打开有乱码时,必然是编码格式问题。

解决此类问题,只需要更改软件打开文档的编码格式,一般途径:设置->工具->编码。可选用自动识别,或者手动更改成目标编码格式。

keli
  1. 点击右上角的设置
  2. 在Editor->Encoding选择合适的编码方式,与当前文档编码方式一致(推荐UTF-8)
VSCode
  1. 在主页面点击左下角的当前编码格式(我的是GB2312,你们的可能不一样)
  2. 点击之后在搜索框中显示选项,选择重新编码打开(没汉化显示英文:Reopen With Encoding)
  3. 选择合适的编码格式,与文档格式保持一致(
相关推荐
2501_916007475 小时前
Windows OpenSSL 生成 iOS 证书,制作 p12 与描述文件,KXBuild 签名实操
windows·vscode·ios·objective-c·个人开发·swift·敏捷流程
我要见SA姐17 小时前
Chrome 内存泄漏诊断指南:从现象定位到根因排查
ide·vscode·python·自动化·编辑器
00后程序员张7 小时前
Windows 开发 iOS App 入门,用 SwiftUI 写第一个 iOS App 装到 iPhone
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
瓶 盖7 小时前
你的 IDE 插件改了 authorized_keys:Claude Code 扩展投毒链路拆解
ide·ssh·vs code·安全分析·供应链安全·claude code
香芋芋圆1 天前
iD-editor 详解|OSM官方在线编辑器,基于D3.js的轻量地图编辑器
开发语言·javascript·编辑器
qinglongcn1 天前
Agent 可能出什么事——五类异常与应对
人工智能·编辑器·ai编程
QianhangQianping1 天前
撤销重做不是「存快照」:一个可视化编辑器的Operation 设计
java·前端·数据库·typescript·编辑器·前端架构·撤销重做
Eiceblue1 天前
用 Python 给 Word 文档加水印:文字、图片与批量处理
开发语言·vscode·python·word
2501_915921431 天前
KXBuild CI 实操,Windows/Linux 服务器接入 Jenkins 打包 iOS IPA
服务器·windows·vscode·ios·ci/cd·个人开发·敏捷流程
Lhan.zzZ1 天前
用 Qt 构建线程安全的通讯静态库:从线程亲和性到完整工程
c++·vscode·qt·tcp/ip·udp