mysql - 将 MySQL 表从 Latin1 转换为 UTF8 时整理丢失的信息

标签 mysql utf-8 internationalization collation latin1

我正在转换一个现有的表格,如下所示:

CREATE TABLE `example`(`id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
                       `column1` char(32) COLLATE latin1_general_ci NOT NULL 
                           DEFAULT '',   
                       `column2` char(64) COLLATE latin1_general_ci NOT NULL 
                           DEFAULT '',
                       PRIMARY KEY (`id`)) 
              ENGINE=MyISAM AUTO_INCREMENT=1 
              DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

使用以下命令转换为 utf8:

ALTER TABLE example CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

这似乎工作正常,但结果表不包含任何排序规则信息:

CREATE TABLE `example` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
                        `column1` char(32) NOT NULL DEFAULT '',
                        `column2` char(64) NOT NULL DEFAULT '',
                        PRIMARY KEY (`id`)
                        ) ENGINE=MyISAM DEFAULT CHARSET=utf8

所以我的问题是,丢失的整理信息会成为问题吗?我搜索了谷歌,但在任何地方都找不到这一点。我对整理标志的理解非常基本(我认为在比较字符串函数中的字符时它在某种程度上很重要?)

谢谢

最佳答案

default collation因为 utf8 字符集是 utf8_general_ci,所以它没有显示它。

关于mysql - 将 MySQL 表从 Latin1 转换为 UTF8 时整理丢失的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1732999/

相关文章:

mysql - 搜索查询很慢如何优化?

php - Laravel 5 Eloquent 字符集 utf8 问题

java - Java + hudson 项目的编码

java - 国际化Java

php - 按时间戳日期分组不返回任何结果

php - 如何使用 php 将 csv 文件导入 MySQL?

php - mysql 更新查询未运行

c - 在 C 中打印一个 unicode 框

Grails:当我向 message.properties 添加新属性时发生 Native2ascii 错误

javascript - Javascript 中如何判断字符串是否包含多字节字符?