UTF-8 的字节被当成单字节字符逐个显示,于是中文散成 ä½ å¥½ 这类带音标的拉丁字母,常见于缺少编码声明的旧页面。
嫩草亚洲精品乱码免费17c|亚洲文本编码图解首页
嫩草亚洲精品乱码免费17c 是一枚把亚洲常见文本编码摊开来讲的图解专题入口。这里不播放影片、不托管任何资源,只做一件事:当你打开一份中文、日文或韩文文本,看到一串像 æ–‡å— 的怪字符时,可以顺着几何色块图、对照表和五步流程,把原本的字一个字一个字找回来。
三种典型乱码现场
现场 A整段变成西欧字母
现场 B一片问号或方块
目标字符集里根本没有这些字,系统只能拿 ??? 或空心方框顶上,日文假名、韩文谚文最容易遇到。
现场 C简体被当繁体读
国标码表与繁体码表错位,中文会变成"看着像字又念不出"的混合符号,多发生在 GBK 文本被按 Big5 解读的时候。
六个编码族谱:谁和谁不一样
同一句"你好",在不同码表下写成完全不同的字节序列。判断乱码之前,先认清它们在页面上长什么样。
| 编码名称 | 一个汉字占几字节 | 常见于 | 识别线索 |
|---|---|---|---|
| UTF-8 | 1–4 | 现代网页、JSON、Markdown | 乱码常以 æ、å、ä 开头 |
| GB18030 / GBK | 1–4(汉字多为 2) | 简体中文旧站、系统自带记事本 | 短句被压成两两成对的怪字节 |
| Big5 | 1–2 | 繁体中文旧站与旧文档 | 混入 ¤、^ 等符号 |
| Shift-JIS | 1–2 | 日文旧站与旧文本 | 半角片假名与乱码混排 |
| EUC-KR / UHC | 1–2 | 韩文旧站与旧文本 | 谚文整块变方块 |
| UTF-16 | 2–4 | 部分字幕与旧版文档 | 字与字之间夹着看不见的空隙 |
一个直观的对照
同一串字节 E4 BD A0 E5 A5 BD:按 UTF-8 读是"你好";按 GBK 读会变成两个毫不相干的汉字;按单字节读就成了 ä½ å¥½。三行字节,三种结果,差别全在"用什么码表去读"。
五步排查流程
顺序不要跳。前两步决定方向,后三步负责验证,跳着做很容易越改越乱。
- 认清这段文字的来路
它是网页正文、独立字幕文件,还是从别的窗口复制过来的?不同来路,第一处要检查的位置不一样。
- 看响应头里的 charset
打开开发者工具的网络面板,找到响应头 Content-Type 后面的编码值,这是浏览器最优先相信的声明。
- 再看文档内部的声明
检查页面源码里的 <meta charset>。当它和响应头打架时,以响应头为准,并让两者统一。
- 用试解码确认方向
把同一段文字依次按 UTF-8、GB18030、Big5、Shift-JIS 解读一遍,哪一次得到可读的句子,方向就对了。
- 一次只改一处再刷新
要么改编码声明,要么改文件保存时的编码,不要同时动两处。改完立刻刷新比对,确认没有把好的一部分改坏。
免费速查对照表
看到熟悉的"怪样子",可以先查这一张表,再决定往哪个方向调。
| 你在页面上看到 | 很可能对应 | 可以尝试的方向 |
|---|---|---|
| ä½ å¥½ | 你好 | 按 UTF-8 重新解码 |
| 文件 | 文件 | 页面声明缺失,补上 UTF-8 |
| ??? | 字符集里没有这个字 | 换成覆盖该语言的编码 |
| □□□ 空心方块 | 缺字形,或编码不支持 | 先补字体,再查编码 |
| 字与字之间夹灰色空隙 | UTF-16 被当单字节读 | 按 UTF-16 解码,并检查 BOM |
常见问答
- 网页上的乱码,浏览者自己能改好吗?
- 如果只是临时查看,部分浏览器提供手动选择编码的入口,能先把内容看完整。要让所有人都看到正常的字,还得由页面作者修正声明或重新保存文件。
- 同一段文字,别人看正常,我看是乱码,为什么?
- 多半是两边对编码的默认假设不同,或者本机缺少对应的中文字体。换一台设备打开对比一下,就能快速分辨是页面问题还是环境问题。
- 复制到记事本再粘回来,能修好吗?
- 只有当你在保存时明确选对了编码才有用。若直接按默认保存,反而会把错误的字节固化下来,之后更难还原。
- 字幕文件乱码该怎么处理?
- 多数情况是 UTF-8 少了 BOM 被按本地码读,或者本地码文件被按 UTF-8 读。用支持"另存为指定编码"的编辑器存成 UTF-8,再对照播放器即可。
- 需要装额外软件吗?
- 通常不需要。系统自带文本编辑器、浏览器开发者工具已经能查看和改写编码信息,尽量别去装来路不明的工具。