包含sourcefileisnotvalidUTF-8的词条

http://www.itjxue.com  2023-02-18 00:56  来源:未知  点击次数: 

如何把 MDX 格式词典转换成 Kindle 字典

一、准备工作

转换过程中需要用到以下软件,请点击链接下载备用。

GetDict.exe

*转换 StarDict 字典可不下载

python *如果系统已安装请忽略

tab2opf.py

mobigen.exe

StarDict

注:python 要安装 2.7.x 版本,而不要安装 3.x 版

二、转换步骤

下面以 MDX 格式的“牛津高阶英语词典(第8版)”举例说明(你也可以使用自己下载到的 MDX 词典文件),详细演示如何一步一步地将其转换成 MOBI 格式的 Kindle 字典。

1、将 MDX 字典转换成 MDX 源文件

运行程序 GetDict.exe。在“选择MDX词典”这项中,点击【浏览…】选择准备好的 MDX 文件,如“牛津高阶英语词典(第8版).mdx”;在“转出文件”这项中,点击【浏览…】选择字典源文件输出路径,建议新建一个文件夹,如“oa8”,输入文件名,如“oa8”,点击【保存】按钮;其它选项保持默认,点击【开始转化】按钮,在弹出的对话框“词典名称”中输入词典的名称,如“oa8”,点击【确定】按钮开始转换。

转换完毕后,在“oa8”这个文件夹中会出现 oa8.dict、oa8.idx 和 oa8.ifo 三个文件。

注意,如果你下载到 MDX 词典本身就是源文件的形式,则可以忽略上面的步骤。不过如果遇到词典源文件后缀为 .dict 的文件后还有一个 .dz,如“***.dict.dz”,需要将 dz 重命名为 gz,并用 7-zip 软件解压,得到“***.dict”文件,然后将后缀名为 .dict 的文件名重命名一下,和其他两个文件的文件名统一起来。

2、将 MDX 字典转换成 TXT 文件

解压缩下载到的“StarDict.zip”,运行文件夹里的“stardict-editor.exe”,切换到“DeCompile/Verify”标签,点击【browse…】按钮,选择“oa8”文件夹中的后缀名为 .ifo 的文件。然后点击【Decompile】按钮,稍候片刻。直到出现提示信息“Done!”,即表示转换成功。

此时“oa8”文件夹中会出现一个转换得到的名为“oa8.txt”的文本文档。

建议检查一下这个文档的内容是否显示正常,如果出现了乱码,请将其更改成正确的编码再保存。否则,后面转换字典文件时出现类似“Source file is not valid UTF8.”的错误提示。

3、将 TXT 文件 转换成 MOBI 源文件

把 tab2opf.py 拷贝到“oa8”文件夹内。打开“命令提示符”,并用 cd 命令定位到“oa8”目录下,输入以下命令(如果已将 python 添加到环境变量则无需输入 python 的全路径):

c:\python27\python.exe tab2opf.py -utf oa8.txt

等待命令运行完毕之后,在“oa8”文件夹下会出现一个 .opf 文件和几个 .html 文件。用记事本或代码编辑器打开其中的 .opf 文件,然后找到如下所示这段代码:

metadata

dc-metadata

dc:Identifier id="uid"oa8/dc:Identifier

dc:Titleh2oa8/h2/dc:Title

dc:LanguageEN/dc:Language

/dc-metadata

x-metadata

DictionaryInLanguageen-us/DictionaryInLanguage

DictionaryOutLanguageen-us/DictionaryOutLanguage

/x-metadata

/metadata

请按照下面的提示说明(红色字符部分)修改上面所示代码:

dc:Identifier id="uid"词典文件标识符/dc:Identifier

dc:Titleh2词典的名字/h2/dc:Title

dc:Language词典的语言/dc:Language

DictionaryInLanguage输入的语言/DictionaryInLanguage

DictionaryOutLanguage输出的语言/DictionaryOutLanguage

其中“词典的名字”即是 Kindle 字典的正式名称,如本例中可将其修改为“牛津高阶英语词典(第8版)”。词典的语言一般不用修改,关键在于输入和输出的语言。如果是英汉词典,输入为英语 en-us,输出为汉语 zh;同理,如果是日中词典,则输入为日语 ja,输出为汉语 zh。

修改完毕后,另存为,文件名不要改动,在“编码”选项中选择“UTF-8”,然后点击【保存】按钮。

4、将 MOBI 源文件转换成 MOBI 文件

把 mobigen.exe 拷贝到“oa8”文件夹内。把刚才生成的那个 .opf 文件拖放到 mobigen.exe 文件上,mobigen.exe 就开始将 MOBI 源文件转换成 MOBI 文件了,转换所需时长根据字典大小而有所不同。

最终得到的 MOBI 格式文件就是转换好的字典文件了。将其拷贝到 Kindle 中即可使用。

注意,在转换的过程中会出现类似“Warning(prcgen):Some syntax error happend in a script …”或“Error: Unexpected token found”之类的提示,这是因为源文件中有一些 javascript 脚本,在转化的过程中被 mobigen 忽略掉了。经过测试不影响最终生成字典文件的使用。

三、已知问题

通过此方法转换的字典,其查询是严格匹配,不支持模糊检索,所以会导致单词变形无法匹配。

为什么win7有些软件无法打开也无法卸载,显示file is not valid

实话WIN7我不在行 不过感觉应该是C盘下的系统目录里的软件反安装程序被你用360等软件给当成垃圾清理掉了。因为没有了反安装程序所以就无法卸载了。但是无法打开就解释不了了。不会是你重新装过系统吧 注册表里的信息都没有了 最好说说是什么软件也好具体分析

received string is not a valid utf8 string怎么解决?在线急等

输入的字符串不是UTF-8编码的,转下试试 System.Text.Encoding.UTF8.GetString(XXX)

received string is not a valid utf8 string怎么解决

文件夹或者序列名字 不能是汉字的,检查一下渲染设置,还有路径等等,有没有汉字的。

虽然不影响渲染,不过也算个小问题

我遇到这个问题 ,就是这个原因。

(责任编辑:IT教学网)

更多

推荐Windows服务器文章