# 请问，如何解析utf-16编码的字典

**URL:** <https://forum.freemdict.com/t/topic/31624>\
**Category:** 技术交流与词典编修\
**Tags:** 求助\
**Created:** [2024 年9 月 7 日 19:57 UTC](https://forum.freemdict.com/t/topic/31624 "2024-09-07T19:57:03Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

作者： ![hereissun](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/h/898d66/32.png) [@hereissun](https://forum.freemdict.com/u/hereissun)\
发布日期： [2024 年9 月 7 日 19:57 UTC](https://forum.freemdict.com/t/topic/31624/1 "2024-09-07T19:57:03Z")

</div>

如题，最近写个背单词的小程序，以往英文环境下没这方面的问题，都是默认的utf-8编码的，想加上点儿汉语对照的功能，摘下来个汉语字典，无论是mdxexplorer,mdx-utils都发觉，从字典源文件mdx解析出来的都是utf-8，但汉语字典里一些拼音和繁体字或者冷僻字词啥的，都是utf-16编码的，在解析出来的源文件这块，统统都搞成了utf-8，弄得后期的加工处理数据的程序，都在遇到这些在mdx字典源头就应该是utf-16编码的字符的时候，总出一些莫名其妙的问题。

---

<div class="post-metadata">

作者： ![demo](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/d/e47774/32.png) [@demo](https://forum.freemdict.com/u/demo)\
发布日期： [2024 年9 月 8 日 00:29 UTC](https://forum.freemdict.com/t/topic/31624/2 "2024-09-08T00:29:09Z")

</div>

可以在得到词典源文件后用emeditor类的编辑器把词典源文件另存为UTF-8, 再来处理就解决了。

---

<div class="post-metadata">

作者： ![shaoshi](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/shaoshi/32/14529_2.png) [@shaoshi](https://forum.freemdict.com/u/shaoshi)\
发布日期： [2024 年9 月 8 日 00:38 UTC](https://forum.freemdict.com/t/topic/31624/3 "2024-09-08T00:38:02Z")

</div>

mdxexport是可以正常导出utf16的，mdx-utils不行。

汉语mdx词典还有使用compact html的，只有mdxexport能处理。那是另一个问题。可以在导出时，用getdict把compact html转换为html。

汉语词典另外还有大量私用字，又是另一个问题。

---

<div class="post-metadata">

作者： ![hereissun](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/h/898d66/32.png) [@hereissun](https://forum.freemdict.com/u/hereissun)\
发布日期： [2024 年9 月 8 日 05:14 UTC](https://forum.freemdict.com/t/topic/31624/4 "2024-09-08T05:14:47Z")

</div>

遇到的就是这些汉语字典的冷僻字，一开始没注意字符编码的事儿，用mdxexplore导出字典源文件之后，再用beautifulsoup解析的时候，总出莫名其妙的错误，后来调试代码的时候，才发觉一堆蝌蚪文的，一查keyword一堆怪码占位符，不知道，是字典当初编撰的时候，就是作者都头疼，还是在解析的时候，因为字符集字符编码的事儿，弄出来一堆乱码的，后来，拿自己手头上对应的纸质字典对照一下，发觉，干脆连输入法都没有选项的冷僻字，而且这样的字，我自己在网上找了半天，也没找到，连contrl+c，contrl+v的路子都难受的生僻字。对了，我解析的字典是现代汉语词典(2002增补本)(汉英双语),用的是论坛里提供的mdx文件，无论是用mdxexplort还是 mdx-utils解析出来之后，都大概有将近千八百的冷僻字是这样的占位符，在emeditor里这样的占位符就是个口一样的方块。不知道是字典因为字符集字符编码解析的原因，还是当初字典的作者也脑袋大的，反正这样的占位符替代的生僻字，不仅好几个输入法里没有，我是在网上找了半天，连拷贝粘贴的路子都行不通。

---

<div class="post-metadata">

作者： ![jcz777](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/jcz777/32/60576_2.png) [@jcz777](https://forum.freemdict.com/u/jcz777)\
发布日期： [2024 年9 月 8 日 05:52 UTC](https://forum.freemdict.com/t/topic/31624/5 "2024-09-08T05:52:31Z")

</div>

你或者需要：

> [@我的度盘，砖头和瓦片](https://forum.freemdict.com/t/topic/17669/1):
>
> [【砖头】》》【字体】：自行修改拼凑字体，支持至15.1。含[color=#ff0000] **宋体、黑体** [/color]，大陆字形 ](https://pan.baidu.com/s/1R-orpEyEx-2uPYl09FTrzg?pwd=fo1v)。宋体持续修改中……如发现有错误，敬请告知。  
> [【砖头】》》【字体】：【全宋体】](https://pan.baidu.com/s/1Z2AraUmpMTZnNl5rH8NCZQ?pwd=y51g)  
> [【砖头】》》【部件检索】：搬运自M大，有部分修改](https://pan.baidu.com/s/1FcAu6hBQB6qdHfhSwTmCCg?pwd=4rrb)

---

<div class="post-metadata">

作者： ![MeigenChou](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/meigenchou/32/90024_2.png) [@MeigenChou](https://forum.freemdict.com/u/MeigenChou)\
发布日期： [2024 年9 月 8 日 06:04 UTC](https://forum.freemdict.com/t/topic/31624/6 "2024-09-08T06:04:40Z")

</div>

楼主说的生僻字问题与文本编码没有任何关系，如果一开始编码就选错了那么所有的文本都是乱码，甚至英文都不能正常显示。至于生僻字问题是由于出版商还在用古董级的GB2312编码，如果一个字不在这个字符集内就只能私造码位，导致转到unicode后码位对应不上无法显示。这个问题也无有效的解决方案，只能一个个手动对应。

---

<div class="post-metadata">

作者： ![hereissun](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/h/898d66/32.png) [@hereissun](https://forum.freemdict.com/u/hereissun)\
发布日期： [2024 年9 月 8 日 07:14 UTC](https://forum.freemdict.com/t/topic/31624/7 "2024-09-08T07:14:49Z")

</div>

确实是这么回事儿，在utf-8环境下顺风顺水惯了，一开始也没往这方面想，就是在导入导出文件的时候，emditor或者libreoffice总提示utft-16，后来，调试单步跟踪代码的时候，才发觉有蝌蚪文，这个时候，开始怀疑字符集，编码的事儿，后来，对照一下纸质版，发觉，纸质版上的这些冷僻字，连输入法都没有，按照读音，在网上搜一下，能搜到的话，大不了费点儿劲，拷贝粘贴一下，结果，网上都没划拉着，外研社出的汉英对照的冷僻字，居然在正统官方新华字典的官网上都找不到，这事儿，到哪儿说理去。自己在自己机器上手动造字，自赋unicode编码值，这么折腾的话，估计换个机器，立马是一堆蝌蚪文，或者不明不白的一些大方块似的占位符啥的。这事儿说一千道一万的，还是中文影响力不够，形成不了全球流通的标准，有限的一些通用的，也都是常用字大概三五千左右，其他的，一些冷僻字，都得自己手动造。

---

<div class="post-metadata">

作者： ![shaoshi](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/shaoshi/32/14529_2.png) [@shaoshi](https://forum.freemdict.com/u/shaoshi)\
发布日期： [2024 年9 月 8 日 07:55 UTC](https://forum.freemdict.com/t/topic/31624/8 "2024-09-08T07:55:57Z")

</div>

不必造什么字。《现汉汉英》的字不会超出《现汉7》的范围。

M.C为了做《现汉7》，已经造了宋体、黑体的字型。

你把他的字型搬一个过来用就行。

找不到的字，就在M.C的《现汉7》里检索，复制过来用。

《现汉汉英》mdx我做过改版，就是搬M.C的黑体字型过来用。我只是像间歇喷泉那样偶尔发了就删。下一次也许在重阳节发。我也不会特地为了某个人发，发出来也会加下载限制。

各人自己做自己的改版，作为一种学习方法，是不错的。不这样，谁能有耐性读词典？ 😄

---

<div class="post-metadata">

作者： ![shaoshi](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/shaoshi/32/14529_2.png) [@shaoshi](https://forum.freemdict.com/u/shaoshi)\
发布日期： [2024 年9 月 8 日 08:33 UTC](https://forum.freemdict.com/t/topic/31624/9 "2024-09-08T08:33:29Z")

</div>

> [@hereissun](#):
>
> 中文影响力不够，形成不了全球流通的标准，有限的一些通用的，也都是常用字大概三五千左右，其他的，一些冷僻字，都得自己手动造。

楼主说的是历史了。现在Unicode中的汉字已经很多了，新字还在陆续造。

超大字符，Win10已经支持了。

需要超超大字符，包括很冷的，Unicode还没有的字，可以用全宋体。

你对汉语词典看来真不太熟悉。去下载本坛M大的《汉语大字典》看看。

---

<div class="post-metadata">

作者： ![hereissun](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/h/898d66/32.png) [@hereissun](https://forum.freemdict.com/u/hereissun)\
发布日期： [2024 年9 月 8 日 08:42 UTC](https://forum.freemdict.com/t/topic/31624/10 "2024-09-08T08:42:36Z")

</div>

确实对中文汉语字典不太熟悉，就是上学的时候，偶尔翻翻新华字典，其他的，中文这块，基本上多少年都没碰过字典的，网络环境下，有啥网络词语的，也基本上百度必应谷歌的事儿。毕竟所谓的上下五千年的文化，真深究起来，也肯定有不少说道的。

---

<div class="post-metadata">

作者： ![shaoshi](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/shaoshi/32/14529_2.png) [@shaoshi](https://forum.freemdict.com/u/shaoshi)\
发布日期： [2024 年9 月 8 日 08:49 UTC](https://forum.freemdict.com/t/topic/31624/11 "2024-09-08T08:49:27Z")

</div>

用叶典检索难字也行。坛里有mdx，不过mdx的资料是旧的，没有跟着网站更新。

叶典

> **[字海网，叶典网：收字14万，囊括VsHx字海,康熙字典,汉语大字典,现代汉语词典,unicode系列全部汉字,成语词典,辞典,VsGo成语大字典,中华字海](http://yedict.com/)**
>
> 字海网（叶典网）由叶先生创立，力争做到收字有据、查字便捷、释义准确,以绵薄之力，行公益之事，扬汉字文化。两分查字,部首查字,拼音查字,字海(叶典),两分查字法,成语词典,在线字典,辞典,字海网,叶典网,unicode系列汉字，成语大字典,中华字海。

有时我也用这个：

台湾国际电脑汉字及异体字知识库  
[https://chardb.iis.sinica.edu.tw/](https://chardb.iis.sinica.edu.tw/)

---

<div class="post-metadata">

作者： ![hereissun](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/h/898d66/32.png) [@hereissun](https://forum.freemdict.com/u/hereissun)\
发布日期： [2024 年9 月 8 日 09:36 UTC](https://forum.freemdict.com/t/topic/31624/12 "2024-09-08T09:36:07Z")

</div>

岑鸟，这个左右字挤到一起，念chen2，表示小鸟的意思，现代汉语词典(2002增补本)(汉英双语)，纸质版第240页，mdx里，mdxexplort解析出来的源文件，怎么折腾都是个方块，占位符，已经电脑上装了台湾版的全宋体，拿win自带的字符映射器，也没发现这个字对应的unicode.网上划拉半天，跟抬杠似的，就是没找到，汉语，毕竟沉淀了这么多年的东西，真较真的话，也不缺博大精深的地方。难不成这事儿，非得自己在自己电脑上造字不成。。。。

---

<div class="post-metadata">

作者： ![shaoshi](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/shaoshi/32/14529_2.png) [@shaoshi](https://forum.freemdict.com/u/shaoshi)\
发布日期： [2024 年9 月 8 日 09:41 UTC](https://forum.freemdict.com/t/topic/31624/13 "2024-09-08T09:41:33Z")

</div>

全宋体有4个字型，这个字在全宋体2。

𮭦 U+2EB66

这个字贴到Libreoffice Writer为新宋体，可以显示。

---

<div class="post-metadata">

作者： ![jcz777](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/jcz777/32/60576_2.png) [@jcz777](https://forum.freemdict.com/u/jcz777)\
发布日期： [2024 年9 月 8 日 09:47 UTC](https://forum.freemdict.com/t/topic/31624/14 "2024-09-08T09:47:34Z")

</div>

![Screenshot_20240908_174442](https://forumcdn.freemdict.com/uploads/default/original/3X/8/1/8120ddbc86c21db4357bc7512067c4fe9734d504.jpeg)

装完字体，导入注册表文件。  
然后在emeditor等文本编辑器修改显示的字体

---

<div class="post-metadata">

作者： ![shaoshi](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/shaoshi/32/14529_2.png) [@shaoshi](https://forum.freemdict.com/u/shaoshi)\
发布日期： [2024 年9 月 8 日 09:50 UTC](https://forum.freemdict.com/t/topic/31624/15 "2024-09-08T09:50:40Z")

</div>

> [@hereissun](#):
>
> 岑鸟

“岑鸟”，贴在叶典网站的两分法查字框里，马上就查到了完整的字。

你的电脑是什么系统？

Win10行。Win11未必行。

别用windows自带的字符映射器了。

下载安装免费软件BabelPad、BabelMap吧。

假如做mdx，得改css。

```auto
/* 字型 */
@font-face {
	font-family: 'Heiti';
	src: url('hei_xdhy.ttf');
}

/* 内文 */
body {
	font-family: "Times New Roman", Th-tshyn-P2, Th-tshyn-P1, Th-tshyn-P0, Th-tshyn-P16, Heiti, serif;
}

```

老兄似乎懂得不多，先好好在论坛逛一圈，下载使用一些mdx，读些帖子吧。你怎么不用M.C的hei\_xdhy.ttf呢？

---

<div class="post-metadata">

作者： ![hereissun](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/h/898d66/32.png) [@hereissun](https://forum.freemdict.com/u/hereissun)\
发布日期： [2024 年9 月 8 日 10:14 UTC](https://forum.freemdict.com/t/topic/31624/16 "2024-09-08T10:14:36Z")

</div>

确实字符集这块，很少打交道，记得最早遇到字符集这方面的问题，是当年大学刚毕业那会儿，满世界神州大陆都移民加拿大的，那个时候，操作系统也都是98，抽冷子到加拿大的伙计，这边大陆家人发过来的邮件，识别不了中文的，当时整个世界好像喧闹了一会，后来，知道是字符集的事儿，也都不算啥了。再后来，就是搞开发那会儿，头一次在网页环境中，遇到乱码蝌蚪文，那个时候，得在页面编码里设置bg5，或者2312啥的，再之后，就是sql语句这块，从数据库里检索出来的东西，没在数据库环境这块设置好utf-8的话，sql出来的result是蝌蚪文，再之后，就是java，python啥环境的界面字符终端层面的乱码了。其他的，不过这些都是简单的系统设置层面的事儿，真真刀真枪的应付点儿字符编码啥的，确实没接触过。也当年开发层面，这种最基本的问题，sdk层面，人家厂商都解决好了，很少有代码这块需要操心这个。我个人跟字符集相关的经历，也大致就是这些。另外，多少说明一下自己，我自己哪怕当年搞开发的时候，也是刚大学毕业，啥都不懂，谁给钱多就伺候谁，一不小心，入行开发的，本身学的也不是计算机，属于基本功半路出家的比较差，但狗屁脑袋不缺想法的，可能有些比较弱智的问题，让论坛的坛友见笑了，望海涵。也算是多说一句，算是自己有感而发吧，以前年少轻狂的时候，喜欢看动画片，很多包括好莱坞的动画片，日本的动漫，真较真点儿画工，也满世界也就是中国人能画出来，但真正值钱的是创意，人家的文案，人家的编剧，中国人就弄不出来。美国迪斯尼的动画，就米老鼠唐老鸭汤姆杰瑞啥的猫和老鼠，就那种画风画质的，绝大多数中国的广告公司都能画出来，但为啥人家满世界收保护费？我自己年轻的时候，也痴迷过技术狂，疯狂的学各种框架，知道自己半路出家的，不可能在基础理论上拼过人家科班出身的，就多接触一些现成的框架，但到后来，接触的人和事儿多了，感觉，真正值钱的不是技术，也不是啥框架，是创意层面的想法，有想法的话，剩下的事儿，都是水到渠成。说的可能有点偏颇，望理解。人经历过年少轻狂，也历练过，就知道人真正值钱在哪儿，知道人值钱在哪儿，就变成啥人。

---

<div class="post-metadata">

作者： ![shaoshi](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/shaoshi/32/14529_2.png) [@shaoshi](https://forum.freemdict.com/u/shaoshi)\
发布日期： [2024 年9 月 8 日 11:52 UTC](https://forum.freemdict.com/t/topic/31624/17 "2024-09-08T11:52:25Z")

</div>

> [@hereissun](#):
>
> 说的可能有点偏颇，望理解。

没问题。老兄被我刺激到了？ 说了一大通。😄

我不是搞技术的，中文专业，虽然会点编程，只是外行人的玩意儿。

我这个css是从M.C、M大他们那儿偷师的。这几行是今天才完全弄懂的。 😄

老兄假如是写代码的，不太懂前端的css也不足为奇。

mdx属于小众软件，一般程式员也不懂的。

写程式的搞这个干嘛？个人爱好吗？

1.[《說文解字》字典及全宋體更新](https://fgwang.blogspot.com/2023/02/blog-post.html?showComment=1677164334147#c5902015931201043886)

[安装全宋体最新版](https://forum.freemdict.com/t/topic/28030/4)。  
WFG还在改最新的全宋体。本坛这个是他还没公开发表的。但是amob没把他的reg发出来。需要双击导入reg。不过这个reg据说在Win 11不起作用。

用“天珩字库”也行。我上面的css里列在前面的是天珩字库。在电脑上只要安装了，mdx的文件夹里不需要有字型。在手机上就放一个M.C的黑体字型。

2.[天珩字库](https://forum.freemdict.com/t/topic/2269/26)

3.[M.C的现汉字型](https://cloud.freemdict.com/index.php/s/Sk4kqCr8AyQeDDM)。

---

<div class="post-metadata">

作者： ![hereissun](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/h/898d66/32.png) [@hereissun](https://forum.freemdict.com/u/hereissun)\
发布日期： [2024 年9 月 9 日 10:18 UTC](https://forum.freemdict.com/t/topic/31624/18 "2024-09-09T10:18:55Z")

</div>

另外，再多说点儿吧，可能网络环境里说话比较轻松，但看的人和事儿多了的话，说话办事都知道深浅。自己也是很久没写代码的，今后也不打算再搞开发，这也就是偶尔想背点儿单词的，自己给自己写个背单词的工具。我自己亲眼见过的真实事例。自己公司同事，给某项目写点儿东西，很信心满满的交付给客户，那会儿还是2000刚出来的时候，就这帮政府办公室人员的计算机水平，任何一个搞开发的都可以心底里各种无视外带鄙视的，但自己公司同事写出来的东西，刚搞出来，头一次给客户看，就简单一个登录界面，据说还可以小小吹嘘一把的所谓安全机制，人家一个计算机全盲的主儿，可能计算机水平不如你，但人家业务逻辑比你强，尤其是你针对人家的业务逻辑的需求这块，客户啥时候都比你懂得多，据说本来不应该登录进去的，这个所谓的计算机小白一下子给这个登录界面就登录进去了，然后很快就给系统搞瘫痪了，立马就给搞开发这哥们整傻了。。。
