2012-07-02 2 views
6

Zmieniłem charset ustawić, ale nie działaJak wstawić język hindi w 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

Wszelkie szczęście czyni pracę SQL? – jurgemaister

Odpowiedz

14

charset bazy danych musi być utf8_unicode_ci.

Spróbuj utworzyć nową bazę danych, a także nową tabelę.

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 
    ('कंप्यूटर'); 

To działa na mojej instalacji. Jeśli to nie działa, coś może być nie tak z ustawieniami serwera.

+1

To zadziałało dla mnie. Dzięki –

+0

To nie działa dla mnie! Mam ?????, pokazuje się tam w phpmyadmin, ale nie po tym, jak przechodzę przez wywołanie API. Co zrobić z ustawieniem serwera? –

+0

@PalakDarji Brzmi jak problem z kodowaniem w przeglądarce. – jurgemaister

-1

po prostu użyj N przed wartością taką jak ta $ sql = "wstaw do indextbl Wartości ('Null', N '$ abc')";

+1

Przykro mi, ale jak to ma pomóc? Ponadto, dlaczego twoja odpowiedź zawiera to, co wygląda na PHP? – jurgemaister

2

Nie potrzebujesz zmiany bazy danych, wystarczy zmienić kolumnę tabeli.

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

Ta zmiana działa dobrze i jest bardzo realistyczna.

0

Jeśli stół został już utworzony, a problem dotyczy przechowywania (twoje) lokalnych znaków językowych, utf8_general_ci lub utf16_general_ci byłoby dla Ciebie: Ogień następujące zapytanie:

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

Jeśli to też nie rozwiązać problem, spróbuj zmienić sortowanie bazy danych na utf16_general_ci.

0

z zestawień zmian phpmyadmin swojej tabeli utf16_general_ci ... Uwaga: pracował dla mnie ..

0

Trzeba zmodyfikować tabelę, aby wstawić wartość hindi przy użyciu tego kodu

`ALTER TABLE 'your table name' MODIFY 'column name' VARCHAR(20) CHARACTER SET UTF8;` 

do wyświetlania hindi na stronach internetowych trzeba użyć kodu

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

pomiędzy znacznikiem <head>.

Aby uzyskać szczegółowe wyjaśnienie na ten temat, można click here dowiedzieć się więcej.

Happy Coding!

1

Spróbuj tego:

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