如何在MySQL数据库中以正确的方式存储奇怪的字符

如何在MySQL数据库中以正确的方式存储奇怪的字符,mysql,unicode,utf-8,sqlite,encode,Mysql,Unicode,Utf 8,Sqlite,Encode,我需要在MySQL表中存储一些数据,但我遇到了一些问题,比如“ā”“攓ō”“ĕ”(等等) 到目前为止,我把这些数据存储在SQLlite数据库中,这很好,因为一切都很好,但现在我尝试将其导出到MySQL数据库中,但是奇怪的字符存储方式并不好,即使我尝试了不同的字符编码。(UTF-8、UTF-16、拉丁语等等) 有人知道这样做的正确方法吗 非常感谢 您可以切换到数据类型,或者如果坚持使用TEXT/VARCHAR/CHAR,则需要更改表和数据库的字符集,如下所示 CREATE DATABASE m

我需要在MySQL表中存储一些数据,但我遇到了一些问题,比如“ā”“攓ō”“ĕ”(等等)

到目前为止,我把这些数据存储在SQLlite数据库中,这很好,因为一切都很好,但现在我尝试将其导出到MySQL数据库中,但是奇怪的字符存储方式并不好,即使我尝试了不同的字符编码。(UTF-8、UTF-16、拉丁语等等) 有人知道这样做的正确方法吗

非常感谢

您可以切换到数据类型,或者如果坚持使用TEXT/VARCHAR/CHAR,则需要更改表和数据库的字符集,如下所示

CREATE DATABASE mydbname
    CHARACTER SET utf8
    COLLATE utf8_general_ci;

USE mydbname;

CREATE TABLE `mytable` (
    `data` varchar(200) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
如果您已经有一个数据库,其
utf8
字符集和排序规则设置为
utf8\u general\u ci
,则您只需按如下所述更改表即可:

ALTER TABLE `mytable` CHANGE `data` `data` VARCHAR(100) 
CHARSET utf8 COLLATE utf8_general_ci DEFAULT '' NOT NULL;

utf8需要在大约4个地方建立

  • 数据库中的列--使用
    SHOW CREATE TABLE
    验证它们是否显式设置为utf8,或者是否从表定义中默认设置。(仅更改数据库默认值是不够的。)
  • 客户端和服务器之间的连接。请参见
    设置名称utf8
  • 您拥有的字节数
  • 如果要在网页中显示文本,请检查
    标记

谢谢!你的回答帮助我将数据存储到数据库中。。但是现在我不能用正确的方式选择。。。。如果我执行select操作并打印数据,我会看到很多奇怪的字符(但现在在db中它们就可以了)