查询MS Office自动更正列表文件(*.acl)的编码格式
分析MS Office *.acl自动更正文件的编码格式
嘿,我来帮你梳理下这个ACL文件的编码问题!先把你用十六进制编辑器拿到的对应数据整理成清晰的表格,方便对比分析:
| 字符 | ACL文件中的十六进制 | Unicode编码点 | UTF-8十六进制表示 | UTF-16BE十六进制表示 |
|---|---|---|---|---|
| a | 00 61 | U+0061 | 61 | 00 61 |
| A | 00 41 | U+0041 | 41 | 00 41 |
| ä | 00 E4 | U+00E4 | C3 A4 | 00 E4 |
| © | 00 A9 | U+00A9 | C2 A9 | 00 A9 |
从这些数据里能明显看出规律:
- ACL文件里的每个字符都用双字节存储,这排除了单字节编码(比如ISO-8859-1、ASCII)的可能——毕竟单字节编码里ä只会是
E4,不会带前面的00。 - 对比UTF-8的编码:UTF-8里ä是
C3 A4、©是C2 A9,和ACL里的00 E4、00 A9完全不匹配,所以也不是UTF-8。 - 再看UTF-16的两种字节序:UTF-16LE(小端序)里a会是
61 00,但你拿到的是00 61;而UTF-16BE(大端序)的编码正好和ACL里的十六进制完全对应——每个字符的编码都是Unicode编码点的大端序双字节表示。
因为你测试的这些字符都属于Unicode基本多语言平面(BMP),所以也可以说这个文件用的是UCS-2BE(UCS-2是UTF-16的子集,仅覆盖BMP字符),不过考虑到Office产品对Unicode的支持,更准确的结论是:MS Office的.acl自动更正文件采用UTF-16BE(大端序)编码*。
内容的提问来源于stack exchange,提问作者watnuss
相关产品推荐
相关产品推荐

