文字セット セットを変更しましたが、機能しません
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 ('कंप्यूटर');
データベースの文字セットは である必要があります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
('कंप्यूटर');
これは私のインストールで動作します。うまくいかない場合は、サーバーの設定に問題がある可能性があります。
データベースを変更する必要はありません。テーブルの列を変更するだけです。
ALTER TABLE `YOUR TABLE` CHANGE `data ` `data ` VARCHAR(1000)
CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
この変更はうまく機能し、非常に実現可能です。
これを試して:
CREATE TABLE tbl_hindi (
data nvarchar(1000),
);
INSERT INTO tbl_hindi VALUES (N'कंप्यूटर');
SELECT * FROM tbl_hindi;
この $sql="insert into indextbl Values('Null',N'$abc')"; のように、値の前に N を使用するだけです。