2011-07-28 126 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 –

相關問題