news 2026/4/3 4:45:31

【字符编码】记事本测试乱码思路

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【字符编码】记事本测试乱码思路

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

      • 一、 为什么你的操作没有出现乱码?
      • 二、 能稳定复现乱码的测试思路
        • 方案 1:使用 **GBK 不支持的字符**(最简单)
        • 方案 2:手动破坏编码(字节层面,最直观)
        • 方案 3:跨系统/编码测试(ASCII 编码场景)
      • 三、 关键补充:记事本的编码识别逻辑

我想使用电脑的记事本测试一下不同编码的乱码显示效果,但是我新建一个txt,设置为utf-8编码,在里面写了汉字保存,然后再把这个文件设为ansi编码,可是为什么没有显示乱码,我想测试一下乱码效果,解释下原因,并提供一个测试思路

一、 为什么你的操作没有出现乱码?

核心原因是:你做的是「编码转换」,而非「编码不匹配解析」,且常用汉字在中文系统的UTF-8ANSI编码中存在兼容映射。

我们先明确两个关键概念:

  1. 编码的本质:字符(如“你”)和二进制字节的对应规则。
  2. 乱码的本质用错误的编码规则解析二进制字节→ 字节无法映射到正确字符,出现或无意义字符。

你的操作流程(UTF-8 存汉字 → 另存为 ANSI)中,记事本做了主动的字符转码,而非直接用 ANSI 解析 UTF-8 字节:

  1. 中文 Windows 系统中,ANSI编码等价于GBK(兼容 GB2312),覆盖了绝大多数常用汉字。
  2. 当你选择「另存为 → ANSI」时,记事本会将原 UTF-8 编码的汉字转换为 GBK 编码的字节,再保存。
  3. 再次打开时,用 ANSI(GBK)解析 GBK 字节,自然不会乱码。

只有当字符不在目标编码的字符集内,或直接用错误编码解析原字节时,才会触发乱码。

二、 能稳定复现乱码的测试思路

要复现乱码,核心是制造「字节内容」和「解析编码」的不匹配,绕开记事本的自动转码功能。以下提供 3 种可落地的测试方案:

方案 1:使用GBK 不支持的字符(最简单)

利用「UTF-8 支持全 Unicode 字符,而 GBK 仅支持常用汉字」的特性,选择 GBK 字符集外的字符测试。

  1. 新建记事本,输入GBK 不支持的字符,例如:
    • 生僻汉字:𠀀、𠑳(扩展区汉字,不在 GBK 字符集内)
    • 特殊符号:😀(Emoji)、𝄞(音乐符号)、ℤ(数学符号)
  2. 选择「另存为 → 编码选 UTF-8 → 保存」。
  3. 再次打开文件,选择「另存为 → 编码选 ANSI → 保存」。
  4. 重新打开这个 ANSI 编码的文件:GBK 不支持的字符会变成或方块乱码,常用汉字依然正常。
方案 2:手动破坏编码(字节层面,最直观)

用十六进制编辑器直接修改文件字节,制造编码不匹配,彻底绕开记事本的自动转码。
工具:Windows 自带的WinHex(需安装)或在线十六进制编辑器。

  1. 新建记事本,输入简单内容:测试编码乱码另存为 UTF-8(带 BOM)
    • UTF-8 带 BOM 的文件开头有 3 个字节:EF BB BF,记事本靠这个识别 UTF-8 编码。
  2. 用十六进制编辑器打开这个 txt 文件,删除开头的EF BB BF字节,保存文件。
  3. 用记事本打开修改后的文件:
    • 记事本无法识别 UTF-8 编码,会默认用 ANSI(GBK)解析 UTF-8 字节 → 直接出现乱码(例如:娴嬭瘯缂栫爜闅忔剰)。
方案 3:跨系统/编码测试(ASCII 编码场景)

ANSI 在英文系统中是ASCII 编码(仅支持 0-127 的字符),中文在 ASCII 中无对应字节,必然乱码。

  1. 在中文 Windows 中,新建记事本输入中文测试另存为 UTF-8 编码(不带 BOM,可通过 Notepad++ 设置)。
  2. 将文件拷贝到英文 Windows 系统(或在中文系统中用记事本强制选择 ASCII 编码打开)。
  3. 用记事本打开文件并选择ASCII 编码→ 所有中文都会变成乱码(ASCII 无法解析中文多字节)。

三、 关键补充:记事本的编码识别逻辑

记事本打开文件时,优先级如下:

  1. 先检测BOM:有EF BB BF→ 识别为 UTF-8;有FF FE→ 识别为 UTF-16 LE。
  2. 无 BOM → 默认用ANSI编码解析(中文系统=GBK,英文系统=ASCII)。
    这也是方案 2 中删除 BOM 就能触发乱码的核心原因。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/22 20:02:28

Z-Image-Turbo应用场景:AI设计辅助工作流搭建

Z-Image-Turbo应用场景:AI设计辅助工作流搭建 1. 引言:AI设计辅助的现实需求与Z-Image-Turbo的价值定位 在现代创意设计领域,从品牌视觉到产品原型,再到数字内容生产,设计师面临日益增长的效率压力。传统设计流程依赖…

作者头像 李华
网站建设 2026/3/13 21:14:50

Qwen轻量模型适合创业公司吗?成本效益实战分析

Qwen轻量模型适合创业公司吗?成本效益实战分析 1. 引言:轻量级AI对话服务的现实需求 在创业公司资源有限的背景下,如何以最低成本构建具备可用性的智能对话能力,成为技术选型的关键挑战。传统大模型虽性能强大,但往往…

作者头像 李华
网站建设 2026/3/31 16:11:16

无障碍辅助系统开发:为听障用户提供情绪化字幕服务

无障碍辅助系统开发:为听障用户提供情绪化字幕服务 1. 引言:让声音“可视化”的智能语音理解技术 在数字内容日益丰富的今天,听障用户在获取音频信息时仍面临巨大障碍。传统的语音转文字(ASR)系统虽然能提供基本的字…

作者头像 李华
网站建设 2026/4/1 4:23:26

真实体验分享:FSMN-VAD在会议录音中的应用

真实体验分享:FSMN-VAD在会议录音中的应用 1. 引言:从会议转录痛点出发 在日常工作中,会议录音的整理是一项耗时且重复性高的任务。传统方式下,我们需要手动播放音频、识别发言段落、记录时间戳,再将内容分段提交给语…

作者头像 李华
网站建设 2026/3/28 18:01:13

Arbess项目实战 - 基于GitLab搭建Node.js项目自动化流水线

Arbess 是一款开源免费的 CI/CD 工具,工具支持免费私有化部署,一键安装零配置。本文将详细介绍如何安装Arbess、GitLab,创建流水线实现 node.js 项目自动化部署。 1、GitLab 安装与配置 本章节将介绍如何使用CentOS9搭建Gitlab服务器&#…

作者头像 李华
网站建设 2026/3/29 0:14:54

GPT-OSS部署资源规划:显存与CPU协同配置

GPT-OSS部署资源规划:显存与CPU协同配置 1. 技术背景与部署挑战 随着开源大模型生态的快速发展,GPT-OSS作为OpenAI推出的轻量化开源推理模型系列,正被广泛应用于本地化部署和边缘推理场景。其中,gpt-oss-20b-WEBUI镜像集成了20B…

作者头像 李华