按字母顺序排列阿拉伯语数据
Order Arabic data by alphabet letters
如何按阿拉伯字母排序从 MySQL 抓取的数据?
注意:我在MySQL中使用utf8_general_ci
作为排序规则,编码没问题,我只想知道如何按字母排序数据.
为了使用 php 对 mysql 数据库中的阿拉伯语文本进行排序,您必须确保:
- MySQL 字符集:
UTF-8 Unicode
(utf8
)
- MySQL 连接排序规则:
utf8_general_ci
- 您的数据库和 table 归类设置为:
utf8_general_ci
或
utf8_unicode_ci
因此,当您创建 table 将字符集设置为 utf8 时:
CREATE TABLE my_table (
id int(11) NOT NULL auto_increment,
name varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (id)
) DEFAULT CHARSET=utf8;
如果您已经有 latin1
编码的 table,请像这样转换它:
ALTER TABLE `my_table` CONVERT TO CHARACTER SET utf8
然后,您需要在设置数据库连接时在 PHP 中添加一行:
mysql_query ('SET NAMES \'UTF8\'');
或:
mysql_set_charset ('UTF8'); // PHP 5.2.3 or greater.
或者,如果您使用的是 PDO
,您可以像这样将其作为第四个参数传递:
$db = new PDO ('mysql:host=localhost;dbname=tests', 'root', '',
array (PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
另外不要忘记将页面的 header 设置为 utf8
:
header ('Content-type:text/html; charset=utf-8');
示例排序查询:
$sql = "SELECT * FROM my_table ORDER BY name" ;
如何按阿拉伯字母排序从 MySQL 抓取的数据?
注意:我在MySQL中使用utf8_general_ci
作为排序规则,编码没问题,我只想知道如何按字母排序数据.
为了使用 php 对 mysql 数据库中的阿拉伯语文本进行排序,您必须确保:
- MySQL 字符集:
UTF-8 Unicode
(utf8
) - MySQL 连接排序规则:
utf8_general_ci
- 您的数据库和 table 归类设置为:
utf8_general_ci
或utf8_unicode_ci
因此,当您创建 table 将字符集设置为 utf8 时:
CREATE TABLE my_table (
id int(11) NOT NULL auto_increment,
name varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (id)
) DEFAULT CHARSET=utf8;
如果您已经有 latin1
编码的 table,请像这样转换它:
ALTER TABLE `my_table` CONVERT TO CHARACTER SET utf8
然后,您需要在设置数据库连接时在 PHP 中添加一行:
mysql_query ('SET NAMES \'UTF8\'');
或:
mysql_set_charset ('UTF8'); // PHP 5.2.3 or greater.
或者,如果您使用的是 PDO
,您可以像这样将其作为第四个参数传递:
$db = new PDO ('mysql:host=localhost;dbname=tests', 'root', '',
array (PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
另外不要忘记将页面的 header 设置为 utf8
:
header ('Content-type:text/html; charset=utf-8');
示例排序查询:
$sql = "SELECT * FROM my_table ORDER BY name" ;