gpt4 book ai didi

mysql - 在 MySQL 中更改字符集

转载 作者:行者123 更新时间:2023-11-29 03:05:26 26 4
gpt4 key购买 nike

当我开始我的网站时,我将所有表格列设置为“utf8_general_ci”,认为这将使所有内容都以 UTF8 格式存储。

根据 PHP 中的 mysql_client_encoding() 函数,我一直使用 latin1 进行连接。

我知道这不是一个新问题。我的问题是如何正确更新我的数据库,使其成为 utf8 且不影响我的表中存在的数据?

StackOverflow 上有很多答案,但我发现很多答案都含糊不清。一些更有帮助的是:

查询所有数据并更新为 UTF8 https://stackoverflow.com/a/2335254/158126

使用构建的脚本来转换表 https://stackoverflow.com/a/13400547/158126

根据您的经验,您采取了哪些措施来解决此问题并将所有用户数据保留在 MySQL 表中?

最佳答案

对于您的情况,我建议尝试针对每个坏列(通过 utf8 连接进行连接)进行跟踪:

// create a new column to store the latin1
alter table <table> add <column-latin1> <length> character set latin1;

// copy the utf8 data into the latin1 column without charset conversion
update <table> set <column-latin1> = binary <column-utf8>;

// verify the latin1 data looks OK
select <column-latin1> from <table>;

// copy the latin1 column into the utf8 column WITH charset conversion
update <table> set <column-utf8> = <column-latin1>;

// verify the new, properly encoded UTF8 data looks OK
select <column-latin1> from <table>;

// remove the temporary columns
alter <table> drop <column-latin1>;

并将您的客户端设置为使用 UTF8 连接。

关于mysql - 在 MySQL 中更改字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16291218/

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