MySQL在Linux和;Windows托管数据库

MySQL在Linux和;Windows托管数据库,mysql,sql,character-encoding,mysqldump,Mysql,Sql,Character Encoding,Mysqldump,我对此感到迷茫。我有一个离线工作的网站,然后我上传到live server,将MySQL数据库导入live server,然后进行一般的live。问题是,当我从Live Server导出数据库并导入本地服务器时,我在XHTML输出中得到未知字符,中间带有白色问号的黑色菱形,您知道其中的一个。 我用于从本地MySQL安装导出数据库的命令如下: mysqldump --verbose -hlocalhost -uxxx -pxxx --databases xxx --add-drop-table -

我对此感到迷茫。我有一个离线工作的网站,然后我上传到live server,将MySQL数据库导入live server,然后进行一般的live。问题是,当我从Live Server导出数据库并导入本地服务器时,我在XHTML输出中得到未知字符,中间带有白色问号的黑色菱形,您知道其中的一个。 我用于从本地MySQL安装导出数据库的命令如下:

mysqldump --verbose -hlocalhost -uxxx -pxxx --databases xxx --add-drop-table --default-character-set UTF8 > somedir/xxx.sql
mysql -hlocalhost -uxxx -pxxx somedatabase < xxx.sql
然后,在将该数据导入LIVE数据库时,我使用了一个简单的命令,如下所示:

mysqldump --verbose -hlocalhost -uxxx -pxxx --databases xxx --add-drop-table --default-character-set UTF8 > somedir/xxx.sql
mysql -hlocalhost -uxxx -pxxx somedatabase < xxx.sql
mysql-hlocalhost-uxxx-pxxx somedatabase
很好,一切正常,数据已导入,现场没有未知字符。但是,当我反向执行相同操作时(使用与windows中相同的命令在live server上转储,使用相同的mysql命令在windows中导入),即所有未知字符都会出现

这是一个排序问题吗?我是否使用了不正确的默认字符集

我以前从未遇到过这种情况,我希望得到一些反馈或是朝着正确的方向前进


更新:我已经完全删除了我的本地数据库,导出了整个live db并导入。还是一样的错误:/这让我发疯


非常感谢,,
Simon

我怀疑您的live站点有不同的数据库模式,可能是latin1吗?

请尝试两面:

SET names UTF-8

默认值可能不同。

@vbence我将在导入命令中内联运行此命令,还是在何时何地运行此命令?@webfac是的,如果文件为UTF-8,则应在同一连接中运行此命令(将其作为SQL转储的第一行插入)。此外,如果不是默认设置,则每次连接到数据库时都必须执行此操作。-当然,我在这里假设您在开发macine上使用UTF-8。@vbence-这是一个Joomla数据库,我不知道它安装为什么。但让我试一试,看看它是否能净化空气。谢谢。我真的不知道发生了什么事。我尝试以utf8和拉丁语1的形式转储,我甚至删除了本地数据库并导入了一个完整的新数据库,但仍然会出现这些字符??您是否也尝试过在导入命令中使用默认字符集utf8?“排序规则”不是字符编码。排序规则只是说
b
a
之后,它不影响字符的显示方式。谢谢,我不知道。那么,对于标准网站,即本例中的English Joomla网站,使用什么样的默认排序规则比较好呢?对于英文文本,使用默认(瑞典语)排序规则比较合适。