奇怪(或不?)编码从旧的Access数据库迁移到django

时间:2014-06-10 19:16:09

标签: python mysql django unicode character-encoding

我试图将一个非常旧的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解码不起作用。

0 个答案:

没有答案