2012-07-02 57 views
6

改變的字符集設置,但不起作用我如何插入印地文語言的Mysql

CREATE TABLE `tbl_hindi` (
    `data` varchar(1000) character set utf8 collate utf8_bin default NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
INSERT INTO `tbl_hindi` VALUES ('कंप्यूटर'); 
+0

任何運氣使SQL工作? – jurgemaister

回答

14

數據庫的字符集必須是utf8_unicode_ci

嘗試創建一個新的數據庫,以及一個新表。

CREATE DATABASE hindi_test 
    CHARACTER SET utf8 
    COLLATE utf8_unicode_ci; 

USE hindi_test; 

CREATE TABLE `hindi` (
    `data` varchar(200) COLLATE utf8_unicode_ci NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 

INSERT INTO `hindi` (`data`) VALUES 
    ('कंप्यूटर'); 

這適用於我的安裝。如果它不適合你,你的服務器設置可能有問題。

+1

它爲我工作。謝謝 –

+0

它不適合我!我得到了?????,它在phpmyadmin中顯示,但不是在我通過API調用獲取它之後。如何處理服務器設置? –

+0

@PalakDarji聽起來像在瀏覽器中的編碼問題。 – jurgemaister

-1

只是在像這樣的值之前使用N $ sql =「插入到indextbl值('Null',N'$ abc')」;

+1

我很抱歉,但這應該如何幫助?另外,爲什麼你的答案包含PHP的外觀? – jurgemaister

2

您不需要更改數據庫,只需要更改表列。

ALTER TABLE `YOUR TABLE` CHANGE `data ` `data ` VARCHAR(1000) 
CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL; 

此更改正常工作,非常可行。

0

如果表已經創建,問題是有關存儲(你的)本地語言字符,utf8_general_ciutf16_general_ci將是你: 消防以下查詢:

ALTER TABLE 'tbl_hindi' CHANGE 'data' 'data' VARCHAR(100) CHARSET utf8 COLLATE utf16_general_ci DEFAULT '' NOT NULL; 

如果這太不解決您的問題,請嘗試將數據庫歸類更改爲utf16_general_ci

0
從表中的phpMyAdmin的變化排序規則utf16_general_ci

... 注:它爲我工作..

0

你必須修改你的表使用此代碼

`ALTER TABLE 'your table name' MODIFY 'column name' VARCHAR(20) CHARACTER SET UTF8;` 
插入印地文值

對於在網頁上展示印地文,你需要在<head>標籤之間使用代碼

`<meta charset="UTF-8">` 

有關詳細解釋,您可以通過click here瞭解更多。

快樂編碼!

1

試試這個:

CREATE TABLE tbl_hindi (
    data nvarchar(1000), 
); 
INSERT INTO tbl_hindi VALUES (N'कंप्यूटर'); 
SELECT * FROM tbl_hindi; 
相關問題