首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【LuckiBit】编码格式详解:字符、字符集与编码方式的系统全面解析

【LuckiBit】编码格式详解:字符、字符集与编码方式的系统全面解析

作者头像
LuckiBit
发布2025-07-10 11:08:37
发布2025-07-10 11:08:37
1130
举报
文章被收录于专栏:C语言C语言

一、概览总览表:字符 → 字符集 → 编码方式的关系

概念

作用

例子(字符 “你”)

功能描述

字符

人类语言的最小可书写单位

表达意义的抽象符号

字符集

将字符映射为唯一编号(码点)

你 → U+4F60

标准编号规则,解决不同语言共存问题

编码方式

将字符编号编码为字节流

你 → UTF-8: E4 BD A0

存储、传输用的实际数据表示方式


二、字符和字符集

2.1 常见字符类型表

类型

例子

说明

英文字母

A, B, C… a, b, c…

ASCII 内的基本字符

数字

0~9

十进制阿拉伯数字

标点符号

.,!?;:"'

控制语言结构

控制字符

\n, \t, \r

不可观,控制显示和输入

中文汉字

你, 我, 他

East Asian 表意文字

日文假名

あ, カ

平假名、片假名

韩文字母

가, 나

韩语 Hangul 字母

Emoji 表情符号

😀, 🚀, 🧠

Unicode 扩展符号

2.2 字符集对比

字符集名称

创建时间

字符数量

支持语言

特点与应用

ASCII

1960s

128

英文、控制符

最早,兼容性好

ISO-8859-1

1980s

256

西欧语言

Latin-1,是 HTML 默认字符集之一

GB2312

1980s

~6,700

简体中文

中国早期标准

GBK

1990s

~21,000

简体中文

向下兼容 GB2312

BIG5

1980s

~13,000

繁体中文

台湾和香港常用

Unicode

1991~

143,000+

全球所有语言

国际标准,持续扩展


三、编码方式详解

3.1 常见编码方式对比

编码名称

使用字符集

字节数

是否变长

是否支持 Unicode

应用领域

特点说明

ANSI

Windows 编码页码

1~2 字节

中文 Windows 文档

非 Unicode,国际不通,依赖系统设置

ASCII

ASCII

1 字节

英文

最基本,最兼容

GB2312

GB2312

1~2 字节

旧中文系统

覆盖面小

GBK

GBK

1~2 字节

Windows 系统

常用,不是国际标准

BIG5

BIG5

2 字节

台湾地区

与 GBK 不兼容

UTF-8

Unicode

1~4 字节

网络传输、跨平台

为环境最推荐,兼容 ASCII

UTF-16 LE/BE

Unicode

2~4 字节

Windows 、Java

BOM项先,内部处理优选

UTF-32 LE/BE

Unicode

4 字节

数据库、内部处理

占空间大,简单管理

3.2 编码实例:“你”

编码方式

十六进制编码

字节数

备注

ANSI (CP936)

C4 E3

2

与 GBK 相同

UTF-8

E4 BD A0

3

推荐

UTF-16 LE

60 4F

2

Windows 内部使用

UTF-32 LE

60 4F 00 00

4

内存处理时用

ASCII

不支持

非 ASCII 范围


四、BOM (Byte Order Mark)

编码

BOM (十六进制)

含义

UTF-8

EF BB BF

可选,部分软件识别

UTF-16 LE

FF FE

小端字节序

UTF-16 BE

FE FF

大端字节序

UTF-32 LE

FF FE 00 00

小端 UTF-32

UTF-32 BE

00 00 FE FF

大端 UTF-32


五、各语言默认编码与 ANSI 支持

编程语言

默认编码环境

ANSI 支持

建议

C/C++

Windows 默认编码页码

支持 ANSI

统一为 UTF-8

Python

Python 3: UTF-8

支持

明确指定 encoding

Java

JDK 8 前依系统编码

可能是 ANSI

使用 UTF-8 配置

C#/.NET

UTF-8/系统编码

支持 ANSI

注意存档编码选项

Notepad

旧版默认 ANSI

支持

另存时选择 UTF-8


六、常见编码问题与解决

问题类型

原因

解决建议

ANSI 文件乱码

UTF-8 环境打开 ANSI 文件

手动转码或在编辑器中指定编码

Git 日志中文乱码

Git 默认非 UTF-8 编码

git config i18n.logEncoding gbk

跨平台 ANSI 错误

Linux 不识别 ANSI 编码

保存时转换为 UTF-8


附录、编码相关工具和网站

A. 工具推荐

工具名称

功能

平台

iconv

Linux下编码转换

Linux

Notepad++

Windows 下编码打开、保存

Win

Visual Studio Code

编码显示、下方栏切换编码

Win/macOS/Linux

Sublime Text

支持编码显示和指定

跨平台

B. 官方资料/网站

总结

编码定义了字符如何被存储和传输,在环境同一时可以按需使用简单编码(如 ASCII),而跨平台、多语种环境中,建议一定使用 UTF-8 无 BOM 编码,选择标准编码方式对保持编码一致性、避免乱码极为重要!

结束语

  1. 本节内容已经全部介绍完毕,希望通过这篇文章,大家对编码有了更深入的理解和认识。

相关文章:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概览总览表:字符 → 字符集 → 编码方式的关系
  • 二、字符和字符集
    • 2.1 常见字符类型表
    • 2.2 字符集对比
  • 三、编码方式详解
    • 3.1 常见编码方式对比
    • 3.2 编码实例:“你”
  • 四、BOM (Byte Order Mark)
  • 五、各语言默认编码与 ANSI 支持
  • 六、常见编码问题与解决
  • 附录、编码相关工具和网站
    • A. 工具推荐
    • B. 官方资料/网站
  • 总结
  • 结束语
  • 相关文章:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档