2011-07-28 157 views
20

我已经改变了表的字符集和列的,我得到的阿拉伯文字????在MYSQL数据库保存数据在阿拉伯语中的MySQL数据库

这里标记是表

CREATE DATABASE mydb 
    DEFAULT CHARACTER SET utf8 
    DEFAULT COLLATE utf8_general_ci; 


    CREATE TABLE `categories` (      
    `category_id` tinyint(2) NOT NULL auto_increment,   
    `category_name` varchar(50)character set utf8 NOT NULL , 
    PRIMARY KEY (`category_id`) 


    insert into `mydb`.`categories` 
    (`category_id`, `category_name`) 
    values (1,'کتگوری'); 
    commit; 

的设计当我再次触发选择查询,它显示????作为文本?

谁能告诉我在哪里,我做错了什么?

+3

哪个版本的mysql?你如何显示你的文字?你可以给你用来检索数据的代码吗?我使用相同的编码和整理,对我来说工作正常。 – nakhli

+0

Mysql版本5.0.45。使用select查询.. select * from poll_categories – Romani

+0

这适用于我在MySQL WB – gbn

回答

23

手动插入阿拉伯语数据到您的phpMyAdmin的。

首先你要么检查你的数据库,表和列名是UTF8设置与否。 如果这些没有被设置为UTF8那么首先你设置它,那么你可以将阿拉伯数据到你的数据库表。

您可以通过查看下面的例子来检查每个这些。

数据库:

SELECT default_character_set_name FROM information_schema.SCHEMATA S 
WHERE schema_name = "schemaname"; 

对于表:

SELECT CCSA.character_set_name FROM information_schema.`TABLES` T, 
     information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA 
WHERE CCSA.collation_name = T.table_collation 
    AND T.table_schema = "schemaname" 
    AND T.table_name = "tablename"; 

对于列:

SELECT character_set_name FROM information_schema.`COLUMNS` C 
WHERE table_schema = "schemaname" 
    AND table_name = "tablename" 
    AND column_name = "columnname"; 

你可以很容易设置UTF8到表中,如果你使用的是SQLyog的。

上分贝,表,列名只需右键点击,点击ALTER选项设置为

数据库Chartset = UTF8 数据库归类= utf8_general_ci。

只是享受....

+0

特别是,请检查个别列字符编码,这是我长时间搔头的原因。 –

+0

简单只用'SHOW CREATE TABLE表名;' –

17

读,写和正确使用PHP的mysql数据库排序阿拉伯文字,请确保:

  1. MySQL的字符集:UTF-8的Unicode(UTF-8)

  2. MySQL连接校对:utf8_general_ci

  3. 数据库和表排序规则是SE吨至:utf8_general_ciutf8_unicode_ci

然后,当你连接到数据库中添加此代码在您的PHP脚本:

mysql_query("SET NAMES 'utf8'"); 
mysql_query('SET CHARACTER SET utf8'); 

For more details

+0

不要使用已弃用的'mysql_query';切换到'mysqli'或'PDO'。 –

7

我们可以将数据库或数据库表来UFT8支持用以下查询:

ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci; 

ALTER TABLE tablename CHARACTER SET utf8 COLLATE utf8_general_ci; 

ALTER TABLE columnname DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci 

Hop它有帮助!

更多@

https://kb.mediatemple.net/questions/138/Default+MySQL+character+set+and+collation#gs

http://hollyslog.com/technology/how-to-store-arabic-or-hebrew-characters-mysql-database

4

更改数据库表中的排序规则类型utf8_general_ci也表字段排序规则更改为utf8_general_ci

enter image description here

+0

谢谢@Nadeem Ijaz –

相关问题