将MySQL表从Latin1转换为UTF8时如何防止/检查数据丢失

野账单

我需要将现有数据库从Latin1转换为UTF8。这里,我想我已经了解了所有需要做的事情。但是,其他链接建议您必须实际导出数据,然后重新导入才能保留数据。实际需要什么来防止数据丢失?如果没有办法真正防止任何数据丢失(丢失的字符编码方式不同,则无法在两者之间映射),那么捕获这种情况的最佳方法是什么?我可以简单地做一个比较,还是有一个更快/更好的方法?

里克·詹姆斯

我相信所有256个latin1编码在utf8中都有一个映射。(但肯定不是另一个方向。)因此,如果您拥有合适的代码,您将不会丢失数据我建议您先进行转换测试,然后再冒险进行转换。

但是首先,我们需要确保您进行了正确的转换。您有一个latin1列,其中包含latin1中的一个字节的重音字母吗?查找带有重音符号的单元格,SELECT LENGTH(col), CHAR_LENGTH(col) ...如果长度相同,则为一字节编码,例如latin1。

SELECT HEX(col) ...-e-acute(é)在latin1中为E9或在utf8中为C3A9。这很重要-如果您有E9,则需要将所有文本从latin1转换为utf8,更改列的声明。如果您已经有C3A9,那么您已经有utf8伪装为latin1;否则,您将伪装为latin1。您需要在修改字节的情况下更改声明

第一种情况:ALTER TABLE tbl CONVERT TO CHARACTER SET utf8;-这会主动更改列中的必要字节。

第二种情况: alter table t modify c varbinary(...); alter table t modify c varchar(...) charset utf8;

有关该情况和其他情况的更多讨论:mysql.rjweb.org/doc.php/charcoll

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将mysql latin1转换为utf8

来自分类Dev

我可以在不丢失数据的情况下将MySQL数据库字符集从latin1转换为utf8吗?

来自分类Dev

使用Java&Hibernate&JPA将MySQL latin1转换为UTF-8

来自分类Dev

在JDBC中将Wacky latin1转换为UTF8

来自分类Dev

将latin1数据转换为现有数据库中的utf8

来自分类Dev

SQL将Latin1列转换为UTF8

来自分类Dev

MySQL函数将使用Latin1编码的文本字段转换为UTF8

来自分类Dev

mysql charset latin1转换为utf-8的问题

来自分类Dev

UTF8与Latin1

来自分类Dev

从utf8到latin1

来自分类Dev

从latin1到utf8更新表是否安全?

来自分类Dev

如何将xml字符串UTF8转换为UTF16?

来自分类Dev

如何将xml字符串UTF8转换为UTF16?

来自分类Dev

PHP:如何将特殊的组合字符从UTF-8转换为Latin 3

来自分类Dev

在C ++中使用utf8库将UTF 16转换为UTF8

来自分类Dev

将SQL Server中的文本值从UTF8转换为ISO 8859-1

来自分类Dev

在 R 中将默认 html 编码转换为 UTF-8 或 latin1

来自分类Dev

PHP / MySQL:修复被隐式mysqli :: set_charset('latin1')连接破坏的utf8文本

来自分类Dev

如何将默认的UTF-8编码更改为LATIN1

来自分类Dev

如何将默认的UTF-8编码更改为LATIN1

来自分类Dev

如何将utf8转换为cp1251以写入mp3文件的ID3_V1标签?

来自分类Dev

在Python中将utf-8转换为latin-1

来自分类Dev

在Python中将utf-8转换为latin-1

来自分类Dev

强制Postgres使用UTF8编码而不是LATIN1进行安装?

来自分类Dev

强制Postgres使用UTF8编码而不是LATIN1进行安装?

来自分类Dev

UTF8可以代表哪些字符,而Latin1不能代表什么字符?

来自分类Dev

如何使用UTF8编码将sas数据集导出或转换为.txt文件?

来自分类Dev

将UInt8转换为字符UTF8

来自分类Dev

将ANSI转换为UTF8

Related 相关文章

热门标签

归档