9

我更改了字符集但不起作用

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

7 回答 7

23

数据库的字符集需要是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
    ('कंप्यूटर');

这适用于我的安装。如果它对您不起作用,则您的服务器设置可能有问题。

于 2012-07-02T12:08:46.823 回答
7

您不需要更改数据库,您只需要更改表列。

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

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

于 2015-12-29T15:48:54.433 回答
3

如果表已经创建并且问题在于存储(您的)本地语言字符,utf8_general_ci或者utf16_general_ci适合您:触发以下查询:

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

如果这也不能解决您的问题,请尝试将数据库排序规则更改为utf16_general_ci.

于 2016-02-15T13:36:44.737 回答
1

您必须使用此代码修改表以插入印地语值

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

要在您的网页上显示印地语,您需要使用代码

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

<head>标签之间。

有关此的详细说明,您可以单击此处了解更多信息。

快乐编码!

于 2017-12-28T03:47:37.163 回答
0

从您的 phpmyadmin 将表的排序规则更改为 utf16_general_ci ... 注意:它对我有用..

于 2017-10-15T17:25:34.750 回答
0

尝试这个:

CREATE TABLE tbl_hindi (
    data nvarchar(1000),
);
INSERT INTO tbl_hindi VALUES (N'कंप्यूटर');
SELECT * FROM tbl_hindi;
于 2018-01-29T05:23:55.597 回答
-2

只需在这样的值之前使用 N $sql="insert into indextbl Values('Null',N'$abc')";

于 2015-08-27T12:30:01.083 回答