你把txt编码改回utf-8试试,我改动的mdxconverter.py加了encoding=‘utf-8’,是不是这个原因?
改到utf-8,仍旧出现:
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xd2 in position 52: invalid continuation byte
还真的是只有中文,可能是soup提取的代码不能适应这个词典…不熟悉bs4…
貌似是部分有英文,其他都是中文。
好像是:在HTML标签中的字保留,前后没有标签的则删除;表格也全没。
这个是gldendict的设置,三维英词.mdx的【abandon】词头指向【词根 B-1】,而词头【词根 B-1】有两个,一个是文字,一个是表,godendict是自动将同名词头合并,只有一个【词根 B-1】词头,因此有文字有表,mdxconverter.py引用的mdict_query返回第一个【词根 B-1】词头,所以只有文字,没有表。
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xd2 in position 52: invalid continuation byte
请教这个报错为什么在转化为html的时候不出现,但在转化为pdf的时候一定出现?
不清楚,我测试上面的1.mdx,2.mdx,abc.mdx和三维英词.mdx都能正常输出pdf,给作者提issue吧,我看作者已经注意到了。
Could you please help me with this error:
Traceback (most recent call last):
File "/home/ubuntu/mdict/MdxConverter/convert.py", line 266, in <module>
{
File "/home/ubuntu/mdict/MdxConverter/convert.py", line 232, in mdx2pdf
mdx2html(mdx_name, input_name, TEMP_FILE, invalid_action, False)
File "/home/ubuntu/mdict/MdxConverter/convert.py", line 197, in mdx2html
for content in definition.find('body').findChildren(recursive=False):
AttributeError: 'NoneType' object has no attribute 'findChildren'
mdx file grabbed from here: Index of /尚未整理/集合/Oxford Dictionaries/Oxford Advanced American Dictionary for learners of English 2011, 16-2-1/
用下面的试一下,但是显示的样式还是有问题,还是需要制作者来处理。
test.zip (134.5 KB)
windows需要安装wkhtmltopdf,第232行改为wkhtmltopdf.exe的路径。
https://wkhtmltopdf.org/downloads.html