我试图将一个非常旧的MS Access数据库迁移到django / mysql。我使用托管旧数据库的非常慢的虚拟机以csv格式导出数据。我现在正在尝试编写一个脚本,通过Django自动将来自csv的数据插入到MySQL中,但是我遇到了一些可能源于我并不完全理解编码或编码的问题总的来说。
它是一个数据库,其中很多文本都是法语,因此它包含通常的html编码引号旁边的重音字符等。我试图使用来自{{3}的htmlparser方法但它在Chaussée d'Enghien 16
等字符串上的UnicodeDecodeError失败了。如果您od -c
给出:
0000000 C h a u s s 351 e d & # 3 9 ; E
0000020 n g h i e n 1 6 \n
和od -t xC
给出:
0000000 43 68 61 75 73 73 c3 a9 65 20 64 26 23 33 39 3b
0000020 45 6e 67 68 69 65 6e 20 31 36 0a
再次检查Access数据库,它在此处显示与八进制转储相同的内容:实际字符串将é
作为一个字符,将'
部分作为五个。
我怎样才能将这些类型的字符串转换为正确的编码?这有可能与神奇的python功能?或者是否更愿意从访问数据库中以其他格式导出数据?
编辑: 埋藏在Access的深处,我找到了输出到utf-8的选项,但没有雪茄。
此外,当字符串包含特殊字符和一个html转义字符时,似乎unicode解码不起作用。