phpMyAdmin(xampp)中的mysql数据库中没有正确显示非英文字符

时间:2013-08-12 16:22:36

标签: mysql encoding character-encoding phpmyadmin non-english

我的问题:

我得到了一个非英语语言的mysql数据库(波斯语或波斯语,如果你不知道那种语言是什么,就像阿拉伯语一样)。记录是通过php使用Windows机器通过Web界面输入的。当我想在xampp中使用phpMyAdmin查看数据库时,记录如下所示:

Ù...رکزآÙ...ÙزØ'تÙپخانه††Ø²Ø§Ø¬Ø§

如果我在phpMyAdmin中编辑记录,我可以添加非英语(波斯语)字符,它们看起来很好,只显示现有数据。

我也获得了.sql备份文件,但是当我在Notepad ++中打开它时,它看起来也不正确。我也在Notepad ++中尝试过“在UTF-8中编码”,但没有用。

我想要的是什么:

phpMyAdmin中的正确表示或健康的.sql文件。

我有什么:

xampp 1.8.2(Apache 2.4.4,MySQL 5.5.32,PHP 5.4.16,phpMyAdmin 4.0.4),win 7 x64

我拥有的文件:
.frm .MYD .MYI个文件(我已复制到xampp\mysql\data\mxpro),我提到的.sql文件(mxpro.sql)&包含以下两行的db.opt文件:

default-character-set=utf8
default-collation=utf8_general_ci

我发现此行包含在.sql文件中:

CHARSET=latin1

所有这些文件都位于mxpro中名为“xampp\mysql\data\”的文件夹中。

phpMyAdmin中表格列的排序规则为:latin1_swedish_ci

我尝试了什么:

首先,当我在Notepad ++中打开MYI文件并使用“UTF-8中的编码”时,我可以看到大多数数据都以正确的格式(波斯语)。

我根据我的研究尝试了以下内容:

1)将我看到的任何内容更改为utf8_general_ci,包括:数据库(mxpro)整理(通过操作),表格整理(通过操作),列整理&服务器连接整理(在一般设置中)

2)将这些服务器变量更改为utf8:字符集客户端,字符集连接,字符集数据库,字符集结果,字符集服务器&字符集系统。

3)将这些服务器变量更改为utf8_unicode_ci:collat​​ion connection,collat​​ion database&整理服务器。

4)添加以下行:

@MySQL_Query("SET NAMES utf8");
在此行之后

到xampp \ php \ pear \ MDB2 \ Driver \ mysql.php:

$connection = @call_user_func_array($connect_function, $params);

5)将这3行添加到my.ini:

collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake

6)添加以下两行:

mysqli_query($link, "SET SESSION CHARACTER_SET_RESULTS =latin1;");
mysqli_query($link, "SET SESSION CHARACTER_SET_CLIENT =latin1;");

到xampp \ phpMyAdmin \ libraries \ dbi \ mysql.dbi.lib.php,位于以下行:

PMA_DBI_postConnect($link, $is_controluser);

7)改变这个:

'utf-8'        => 'utf8',

到此:

'utf-8'        => 'latin1',

在xampp \ phpMyAdmin \ libraries \ select_lang.lib.php

尽管我付出了努力,但还没有结果。

提前谢谢。

2 个答案:

答案 0 :(得分:0)

在phpMyAdmin wiki上,有一篇文章解释了这个问题:

http://wiki.phpmyadmin.net/pma/Garbled_data

答案 1 :(得分:0)

我在我的数据库中使用了这个查询,它运行得很好

  

ALTER DATABASE yourDB CHARACTER SET utf8 COLLATE utf8_bin

相关问题