gpt4 book ai didi

mysql - 将 MySQL latin1_swedish_ci 转换为 utf8_unicode_ci 时丢失数据

转载 作者:可可西里 更新时间:2023-11-01 08:23:20 26 4
gpt4 key购买 nike

当我尝试将数据从 latin1_swedish_ci 转换为 utf8_unicode_ci 时,我丢失了数据! TEXT 列在第一个特殊字符处被截断。

例如: enter image description here变成: enter image description here

然而,我尝试了多种方法来转换我的列,所有解决方案最终都删除了第一个特殊字符处的数据!

我通过 phpMyAdmin 或此 SQL 请求进行了尝试:

UPDATE `page` SET page_text = CONVERT(cast(CONVERT(page_text USING latin1) AS BINARY) USING utf8);

我也试过 php 脚本:

https://github.com/nicjansma/mysql-convert-latin1-to-utf8/blob/master/mysql-convert-latin1-to-utf8.php

结果始终相同,数据在第一个特殊字符处丢失!

我该怎么办?

更新

我可以将数据更改为 utf8

ALTER TABLE page CONVERT TO CHARACTER SET utf8mb4;

ALTER TABLE page CONVERT TO CHARACTER SET utf8;

没有丢失数据,但不能正确显示特殊字符。

使用 php 函数 utf8_encode($myvar); 可以正确显示特殊字符。

最佳答案

要转换表格,请使用

ALTER TABLE ... CONVERT TO ...

或者,要单独更改列,请使用

ALTER TABLE ... MODIFY COLUMN ...

相反,您似乎做了一些不同的事情。如需进一步分析,请提供转换前后的SELECT col, HEX(col) ...,以及使用的转换。

参见 this 中的“截断” .已找到正确的修复程序 here ,但取决于您从 HEX 中看到的内容。

关于mysql - 将 MySQL latin1_swedish_ci 转换为 utf8_unicode_ci 时丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57231274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com