【问题标题】:UTF-8 characters display differently after import to mySQLUTF-8 字符在导入到 mySQL 后显示不同
【发布时间】:2011-09-22 02:49:14
【问题描述】:

我有一个充满重音字符的 mySQL 数据库。从 MS Access 2010 定期填充数据库。

在 Access 中,您会看到 é è à Ü。在Access的导出过程中指定了UTF-8编码。

在我的电脑上用 UltraEdit 打开生成的文本文件,你会看到“Vieux Carré”,UE 说编码是 U8-DOS。

文件通过 FTP 上传,并通过像这样的 LOAD DATA LOCAL INFILE 查询导入

LOAD DATA LOCAL INFILE '$dir/$t.$ext' INTO TABLE `$t` FIELDS  OPTIONALLY ENCLOSED BY '|' TERMINATED BY ';' LINES TERMINATED BY '\n'

在 mySQL 中,字段排序规则设置为 utf8_general_ci。

如果您从命令行或 phpMyAdmin 查询 mySQL,您将看到“Vieux Carré”。

我做错了什么?

【问题讨论】:

    标签: mysql utf-8 load-data-infile ms-access-2010


    【解决方案1】:

    如果您将LOAD DATA INFILE 与具有不同于您的数据库默认字符集的文件一起使用,则需要指定文件所在的字符集:

    LOAD DATA LOCAL INFILE '$dir/$t.$ext'
    INTO TABLE `$t`
    CHARACTER SET utf8
    FIELDS OPTIONALLY ENCLOSED BY '|' TERMINATED BY ';'
    LINES TERMINATED BY '\n'
    

    请注意,数据库字符集是数据库范围的,不同于 table 字符集和 column 字符集。 SHOW CREATE DATABASE database_name 将显示数据库字符集。

    【讨论】:

    • 我可以吻你。下次你在新奥尔良时,我欠你一个 sammich!
    猜你喜欢
    • 2012-01-11
    • 2011-06-15
    • 2011-08-24
    • 2021-12-28
    • 1970-01-01
    • 2013-04-09
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多