磅标记在我的SQL数据库中保存为问号

时间:2012-06-17 22:02:51

标签: python mysql utf

我已经搜索了一段时间,但似乎没有足够的相关性。

基本上,我有一个从程序中提取的csv文件。我写了一个快速的python程序,将csv文件转换为sql文件,以便将其导入数据库。然后我使用windows命令提示符将.sql文件导入到我的远程MySQL服务器。

我的数据库中的某些字段中有一些井号(£)。在csv文件中,它们显示为£,在生成的sql文件中(转换后)它们显示为\£因为我使用了re.escape - 我实际上认为这可能是原因(python代码那个将此内容写入文件: 对于csvReader中的行:     ...其他的东西...     sqlfile.write(re.escape(行[6]))。

导入文件后,我查看表格,井号现在显示为?在表中,当内容显示在网站上使用php进行查询。 数据库服务器连接排序规则是utf8_general_ci,我使用此命令连接到远程服务器: mysql --host = HOST --user = USER --password = PASS --default-character-set = utf8 DATABASENAME< filetoimport.sql

在firefox上更改字符编码没有任何区别,正如预期的那样 - 无论发生什么事情似乎都是在导入sql转储时。

老实说,我并不完全确定我理解整个角色如何运作,我从来没有真正尝试过这样的问题,所以我不确定还有什么可以尝试的。任何帮助甚至是朝着正确方向搜索的点,因为到目前为止我的搜索似乎并没有帮助我:(

谢谢!

1 个答案:

答案 0 :(得分:0)

使用mysql的转义功能。 Mysqldb类似于:

conn.escape_string()