使用方法
- 「模式」默认「文本 → 符号」,粘贴英文即按 Wingdings 编码向量逐个字符替换;切成「符号 → 文本」则反向查表,用来解码别人发来的符号串。
- 输入框默认已经填好
Hello 中,按 Ctrl+Enter(Mac 上 Cmd+Enter)立即转换;单独的 Enter 留给换行,方便处理多行文本。 - 结果区第一行是转换后的文本,第二行是统计:总字符、已转换、原样保留;解码模式下第三项叫「无法识别」,同样按个计数。
- 统计下面是逐字符明细,每字符一行写明原字符与去向;不在 95 项之内的字符显示「原样保留」,无法识别的符号显示「无法识别」并从输出中跳过。
- 工具区下方是 95 行完整映射表,按 ASCII 0x20 到 0x7E 顺序排列,默认显示前 12 行,点「加载更多」展开余下 83 行,点「导出 CSV」存成带字节序标记的文件。
- 「复制结果」只复制转换后的文本;「复制名场面表」复制正文名场面表的 TSV,可直接粘进表格软件。
- 编码按码位迭代,emoji 这类 UTF-16 代理对原样透传并计入「原样保留」,不会被拆成两个字符;解码同样按码位迭代,
●●之间没有分隔符也能正确切开。 - 输入框被清空时点「转换」会自动填回示例;本页只做字符替换,不安装也不调用 Wingdings 字体文件,转换结果是可以复制粘贴的真实 Unicode 文本。
这个Wingdings转换能解决什么问题
Wingdings 是微软 1990 年推出、随 Windows 3.1 捆绑的符号字体(Pi font),键入的字符会画成完全不同的图形:J 画成笑脸、N 画成骷髅、A 画成胜利手势。本页做的不是套字体,而是把每个字符换成它有 Unicode 对应的符号,结果是可以复制粘贴的真实文本,对方没装字体也看得见。
第一类是解码别人发来的符号串。聊天里收到一串 ☟♏●●□,在本页切到「符号 → 文本」粘进去,立刻得到 Hello;逐字符明细会指出哪个符号不在表内、被计为「无法识别」。
第二类是做暗号与整蛊。把一句话编码后发出去,对方没有对照表解不开;J(笑脸)与 L(皱眉脸)是最常被用来做暗号的两个字符。本页给出完整 95 行对照表,编解码都可以当场核对,不必去翻字体映射手册。
第三类是排版与教学。讲字体替换原理时,可以用本页展示「底层字符码没变、只是字形被替换」这件事:为什么不能反过来用 Unicode 符号打出 Wingdings 文本,答案就在原理一节。
计算原理与变量说明
核心是一张 95 项的表 WD,键是 0x20 到 0x7E 的可打印 ASCII,值是对应的 Unicode 符号,逐字取自微软 Windows Wingdings 编码向量。编码就是查表替换,解码是反向表 REV 查表;95 项两两不重复,所以反向查表没有歧义,一个符号只会解回一个字符。
| 字符 | 符号 | Unicode 码位 | 中文说明 |
|---|---|---|---|
| J | ☺ | U+263A | 白色笑脸,最常用来做暗号 |
| L | ☹ | U+2639 | 白色皱眉脸,与 J 成对使用 |
| H | ☟ | U+261F | 白色向下指索引,默认示例第一个 |
| A | ✌ | U+270C | 胜利手势 |
| l | ● | U+25CF | 黑色圆形,编码后最常见的符号 |
| n | ■ | U+25A0 | 黑色方形 |
Wingdings 是 Pi font,字形大多没有 Unicode 对应。字体文件在 0x00 到 0xFF 有两百多个字形,其中只有 95 个可打印 ASCII 位置上的图形在 Unicode 里找得到对应符号,其余(箭头、对勾、圈号、时钟面)没有独立编码。本工具只转换这 95 个,对应不上的原样透传并单独计数,不假装全表可转;0x7F 位置在字体里是无字形占位,同样不在 95 项之内。
解码必须按码位迭代,不能按空白切分。编码结果里 ●● 是两个连续的 U+25CF,中间没有分隔符,用空格切分会把它们粘成一个 token;按码位迭代还要处理代理对,U+1F589 这类补充平面符号在 UTF-16 里占两个码元,本页的 dec() 先把高代理与低代理合成一个码位再查表,然后才查 REV。
名场面与都市传说。N(☠ 骷髅与交叉骨)+ Y(✡ 大卫星)+ C(👍 竖大拇指)三连在 1992 年 Windows 3.1 发布后不久被发现,曾被误读成针对纽约的恶意隐喻;微软与字体设计方 Bigelow & Holmes 均否认有意为之,称字形排布基本随机。1997 年微软在 Webdings 里把 NYC 对应成眼睛、爱心与城市天际线,读作 I Love New York,正是对这场误读的回应。九一一之后还流传过 Q33NY 的变体:按本页映射,Q33NY 转出的是 ✈📏📏☠✡,两个 3 都是直尺。为什么不能反过来用 Unicode 符号「打」出 Wingdings 文本:字体是字形替换,底层字符码没变,复制粘贴出来的是原字符不是符号,这正是本工具存在的理由。
编码与解码都不做大小写归一:W 与 w 在表里是两个不同的符号(凯尔特十字与方框内上箭头),输错大小写会得到另一个字形。空格是唯一映射到自身的字符,所以它计入「已转换」而不计入「原样保留」。
完整示例(数值仅作演示)
默认一组:模式 enc、输入 Hello 中。主结果是 ☟♏●●□ 中,统计为总字符 7、已转换 6、原样保留 1;逐字符明细依次为 H → ☟、e → ♏、l → ●、l → ●、o → □、空格 → 空格、中 → 原样保留。每一行都能在下方 95 行映射表里找到。
反向一组:模式切到 dec、输入 ☟♏●●□ 中,得到 Hello ,统计为总字符 7、已转换 6、无法识别 1,中 显示「无法识别」。把上一组的主结果原样粘回来即可验证编解码互为逆运算。
边界一组:输入 JKL 得 ☺😐☹,三个字符全部转换;输入 NYC 得 ☠✡👍,三个字符也全部转换;输入纯中文「你好」得 你好,已转换 0、原样保留 2;输入 z 得命令符号 ⌘。三组都由页面自己的查表逻辑复算。
Wingdings名场面与未覆盖区间对照表
第一张表列出最常被问到的字符与两桩都市传说,都能在 95 行映射表里核对;「复制名场面表」复制的就是这张表。
| 字符 | 符号 | Unicode 码位 | 中文说明 |
|---|---|---|---|
| J | ☺ | U+263A | 白色笑脸,最常用的暗号字符 |
| L | ☹ | U+2639 | 白色皱眉脸,与 J 成对 |
| N | ☠ | U+2620 | 骷髅与交叉骨,NYC 三连之首 |
| Y | ✡ | U+2721 | 大卫星,NYC 三连之二 |
| C | 👍 | U+1F44D | 竖大拇指,NYC 三连之三 |
| Q | ✈ | U+2708 | 飞机,Q33NY 传说的开头 |
| 3 | 📏 | U+1F4CF | 直尺,Q33NY 里被当成大楼 |
| A | ✌ | U+270C | 胜利手势 |
| T | ❄ | U+2744 | 雪花 |
| U | 🕆 | U+1F546 | 白色拉丁十字 |
| z | ⌘ | U+2318 | 命令符号,Mac 用户最眼熟的一个 |
| { | 🏵 | U+1F3F5 | 玫瑰花结,表尾少见的花卉符号 |
| 空格 | (空格) | U+0020 | 唯一映射到自身的字符 |
第二张表是 0x80 以上的未覆盖区间。这些位置在字体里同样是图形(箭头、对勾、圈号、时钟面等),本页明确不做:一是数量有一百二十多个,二是其中相当一部分在 Unicode 里没有一对一的标准对应,硬凑会引入错误映射。列出来只为把边界说清楚。
| 位置 | 符号 | Unicode 码位 | 类别 |
|---|---|---|---|
| 0x80–0x95 | ⓪ ① ② | U+1F10B、U+2780、U+2781 | 圈号数字(负圈号在 0x8B 起) |
| 0x9E–0x9F | ∙ • | U+2219、U+2022 | 项目符号 |
| 0xA1 | ⭘ | U+2B58 | 粗线圆形 |
| 0xA7 | ▪ | U+25AA | 黑色小方形 |
| 0xAB | ★ | U+2605 | 黑色五角星 |
| 0xB7–0xB9 | 🕐 🕑 🕒 | U+1F550–U+1F552 | 时钟面,从一点到三点 |
| 0xC0 | 🖥 | U+1F5A5 | 台式计算机 |
| 0xCF | 🔒 | U+1F512 | 锁 |
| 0xD9 | ☁ | U+2601 | 云 |
| 0xDF | 🌫 | U+1F32B | 雾 |
| 0xF2 | 🐿 | U+1F43F | 花栗鼠 |
| 0xFE–0xFF | 🌎 🕊 | U+1F30E、U+1F54A | 地球与和平鸽 |
结果边界、舍入与适用说明
- 输入框被清空时点「转换」会自动填回示例 Hello 中,不会输出空结果;想看纯中文效果直接输「你好」。
- 本页没有数值运算,也没有舍入环节;所谓「边界」指映射覆盖范围:0x20 到 0x7E 之外一律原样透传或计为无法识别。
- 编码时空格计入「已转换」而不是「原样保留」,因为 0x20 在表里映射到空格自身;统计三项相加恒等于总字符。
- 解码时无法识别的符号被跳过、不计入输出文本,只在统计与逐字符明细里留下记录;连续两个相同符号(如 ●●)会被正确解开成两个字符。
- 大小写不归一:W 解出凯尔特十字、w 解出方框内上箭头,输错大小写得到的是另一个字形,页面不做猜测。
- 本页只处理文本字符,不安装字体、不读写文件;从 Word 粘贴内容时格式标记不会跟进来,只有纯字符参与转换。
- 导出的 CSV 带字节序标记,Excel 直接打开不乱码;复制按钮走剪贴板 API,浏览器拦截时会静默失败,可手动选中结果文字复制。
- Wingdings、Webdings 是微软的商标,本页只使用公开的编码向量做字符到 Unicode 的映射,不分发字体文件。
常见问题
为什么转换结果发到微信里变了样?
因为输出是真正的 Unicode 符号(如 U+261F),不是 Wingdings 字体渲染效果。设备上有对应字体会显示符号,旧设备可能显示成方框,但字符本身正确,仍可被本页反向解码。
为什么只有 95 个字符能转?
因为 0x20 到 0x7E 这 95 个可打印 ASCII 位置上的图形在 Unicode 里找得到对应符号,其余位置(0x80 以上的一百二十多个图形)大多没有一对一的标准编码。本页只做有把握的 95 个,对应不上的原样透传。
0x7F 为什么不在表里?
0x7F 在 Wingdings 里是无字形占位,键入它什么也不画,所以不在 95 项之内;0x20 空格是唯一映射到自身的字符,反而在表里。
NYC 真的是对纽约的死亡隐喻吗?
不是。1992 年 Windows 3.1 发布后不久有人发现 NYC 转出骷髅、大卫星与竖大拇指,微软与字体设计方 Bigelow & Holmes 均否认有意为之,称字形排布基本随机。1997 年的 Webdings 把 NYC 对应成眼睛、爱心与城市天际线,读作 I Love New York,是对这场误读的回应。
●● 之间没有分隔符,解码为什么不会糊在一起?
因为解码按码位迭代,不按空白切分。每个 U+25CF 单独查反向表得到 l,连续两个就得到 ll;代理对会先合成一个码位再查,所以补充平面符号也不会被拆开。
W 和 w 转出来的为什么不一样?
W(0x57)是凯尔特十字 U+1F548,w(0x77)是方框内上箭头 U+2BB9,两者在表里是不同的条目。页面不做大小写归一,输错大小写得到的就是另一个字形。
能把整篇文章一次性编码吗?
可以,但只有字母、数字与标点会变成符号,中文、emoji 原样透传。逐字符明细按输入长度逐行列出,输入过长时建议分段转换。
输入的数据会上传到服务器吗?
不会。查表、统计与导出都在本页完成,没有发起任何网络请求,刷新页面后输入即恢复默认值。