将csv文件西里尔字符导入Mysql - PHPMyadmin

时间:2012-08-04 14:41:07

标签: mysql csv utf-8 import alphabetical

这里的问题很难,

我正在尝试导入带有西里尔字符的csv文件,例如(俄罗斯城市,它们可能超过40.000) - 这显示在记事本++编辑器中,编码设置为UTF-8而不是bom - :

RU,101000,Москва,Москва,,,,,,55.7522,37.6156,4
RU,101194,Москва 194,Москва,,,,,,55.7522,37.6156,1
RU,101300,Москва 300,Москва,,,,,,55.7522,37.6156,1

然后我使用phpmyadmin中的import选项卡导入它。 一旦我浏览导入的数据。我有以下字符:

RU  101000  МоÑква     МоÑква
RU  101194  МоÑква 194     МоÑква
RU  101300  МоÑква 300     МоÑква

我已经将数据库设置为utf8_general_ci,我尝试了utf8_unicode_ci和utf8_lithuanian_ci ......我不知道如何强制在phpmyadmin面板中显示utf8。 是否有使用SQL输入导入数据trhogh的解决方案?

提前致谢!!

1 个答案:

答案 0 :(得分:0)

看起来问题与phpMyAdmin用于连接MySQL服务器的连接管道有关。

根据this solution,phpMyAdmin使用cpg_db_connect()连接到您的数据库服务器,需要更新它以包含SET NAMES 'utf8'。他们举了以下例子:

function cpg_db_connect()
{
        global $CONFIG;
        $result = @mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']);
        if (!$result) {
                return false;
        }
        if (!mysql_select_db($CONFIG['dbname']))
                return false;
        mysql_query("SET NAMES 'utf8'", $result); # <-- see here
        return $result;
}

如果您无法编辑phpMyAdmin安装(假设您在共享服务器上),只需在您自己的站点上的虚拟/子目录中安装phpMyAdmin,然后查找并编辑此功能。 phpMyAdmin就像其他任何一个php网站一样。

更纯粹的方法(特别是如果你有字符问题)是使用mysql通过ssh导入数据(例如mysql -u dbuser -p dbname < import.sql)。