0

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

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

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

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

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

老实说,我不太确定我是否完全了解整个字符集是如何工作的,我以前从来没有真正尝试过解决这样的问题,所以我不确定还能尝试什么。任何帮助,甚至指向正确的搜索方向,因为到目前为止我的搜索似乎对我没有帮助:(

谢谢!

4

1 回答 1

0

使用 mysql 的转义函数。mysqldb 是这样的:

conn.escape_string()
于 2012-06-18T00:37:19.737 回答