如何在mysql中正确存储和显示unicode

时间:2017-10-06 15:24:45

标签: mysql unicode

我在笔记本电脑中安装了WAMP&我创建了一个mysql表

CREATE TABLE `users` (
  `uname` varchar(20) NOT NULL,
  `pass` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`uname`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

此处显示表的列属性 enter image description here 当我使用

插入印地文unicode时
SET NAMES utf8;
insert into users(uname, pass) values ('सूरज','abc');

表的内容显示在这里

enter image description here

  

unicode wordसूरज没有正确显示。我做错了哪里?

3 个答案:

答案 0 :(得分:1)

您应该更改为utf8多字节。

ALTER TABLE `users` CHARSET=utf8mb4, COLLATE=utf8mb4_bin; 

<强>查询

SELECT * FROM users

<强>结果

uname         pass    
------------  --------
सूरज          abc    

demo http://www.sqlfiddle.com/#!9/4c5b37/1

答案 1 :(得分:0)

  

这里的问题是像doadformysql这样的SQL管理程序,   mysql-workbench-community等与插入unicode不兼容   人物正确。其他程序如SQLyog,phpMyAdmin等。   提供兼容性以将unicode字符正确插入到mysql中   表/数据库中。

The solution for this problem is to use the compatible SQL Admin application

答案 2 :(得分:0)

可能连接参数缺少任何UTF-8规范。

阅读Trouble with UTF-8 characters; what I see is not what I stored,特别是有关“最佳做法”,“调试”和“问号”的部分。

调试提示:सूरज,在utf8(或utf8mb4)中正确编码时为E0A4B8 E0A582 E0A4B0 E0A49C。其他梵文字母看起来很相似。如果你得到了不同的东西,我可以帮你解读它。

(并且,是的,使用InnoDB,而不是MyISAM。)