2011-07-28 13 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

माइस्क्ल संस्करण 5.0.45। चयन क्वेरी का उपयोग कर .. चुनें^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 उपयोग कर रहे हैं।

db, मेज, स्तंभ नाम पर बस ठीक क्लिक करें और बदलने विकल्प पर क्लिक करें और के लिए

डाटाबेस Chartset = UTF8 डाटाबेस मिलान = utf8_general_ci निर्धारित किया है।

बस का आनंद लें ....

+0

विशेष रूप से, कृपया व्यक्तिगत कॉलम वर्ण एन्कोडिंग की जांच करें, यही कारण है कि मुझे चुपचाप लंबे समय तक मेरे सिर को खरोंच कर रहा था। –

+0

बस 'टैबलेट टैबलेट नाम बनाएं' के साथ सरल; ' –

17

पढ़ने, लिखने और mysql डेटाबेस में तरह अरबी पाठ php सही ढंग से उपयोग करने के लिए, सुनिश्चित करें कि:

  1. MySQL चारसेट: UTF-8 यूनिकोड (UTF8)

  2. MySQL कनेक्शन संयोजन: utf8_general_ci

  3. आपका डेटाबेस और तालिका कॉलेशन से हैं टी करने के लिए: utf8_general_ci या utf8_unicode_ci

फिर, अपने PHP स्क्रिप्ट में इस कोड को जोड़ने जब आप db से कनेक्ट:

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

For more details

+0

का उपयोग नहीं किया है बहिष्कृत 'mysql_query' का उपयोग न करें; 'mysqli' या' पीडीओ 'पर स्विच करें। –

7

हम सहायक uft8 करने के लिए डेटाबेस या db तालिका में बदल सकते हैं नीचे दी गई क्वेरी के साथ:

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 

हॉप ई यह मदद करता है!

अधिक @

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 और भी तालिका क्षेत्रों collations के लिए डेटाबेस तालिकाओं collations प्रकार utf8_general_ci लिए बदल जाते हैं।

enter image description here

+0

धन्यवाद @Nadeem Ijaz –

संबंधित मुद्दे