2011-11-16 61 views
3

我有一个MySQL数据库托管在Windows服务器上。当我使用mysql控制台从各种Windows机器查询特定记录时,我得到Päivi(不正确)。当我使用mysql控制台从各种* nix机器查询相同记录时,我得到Päivi(正确)。我正在使用的查询是一个简单的SELECT firstname FROM users WHERE id = 12345;MySQL编码问题 - 从Windows到Linux的不同结果

我的数据库排序规则是utf8,字段排序规则是utf8,并且在运行我的查询之前我尝试过使用set names 'utf8';

为什么Windows机器会返回不同的结果? Windows可能会丢失某些字符?这是正常的/预期的行为?我不是一个编码和语言专家,所以任何反馈都会有帮助。

+0

你如何与服务器进行交互? Mysql命令行,MySQL Workbench,PHPMyAdmin? –

+0

@Traroth我所有的查询都是通过mysql控制台执行的。我认为它删除了大部分变量(而不是通过PHPMyAdmin来查看,PHP可能会将其绑定) –

回答

2

后您连接到服务器,从MySQL控制台客户端,键入以下命令来查看当前的客户端字符集:

status; 

要设置它,使用下面的命令:

set names latin1; 
+0

Server,Db,Client和Conn。都设置为utf8字符集。这不是我想要的吗? –

+0

查看* nix服务器上的内容并将其设置为相同。 –

+0

客户端在Linux安装中设置为拉丁文。谢谢! –

0

我不知道如果一个Windows控制台仍然是使用ANSI代码页的多字节。如果是这样会是问题。结果可能是正确的,但控制台显示错误。