gpt4 book ai didi

mysql - 将Mysql存储的数据转换为正确的utf8

转载 作者:行者123 更新时间:2023-11-29 23:17:38 34 4
gpt4 key购买 nike

我使用 Perl 以错误的格式在 Mysql 中存储了大型阿拉伯数据库,发生了什么:

1)-使用属性创建的Mysql表:

ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci

2)-我的 Perl 脚本是用 utf8 创建的,我使用“use utf8;”在顶部。

3)-我可以从表中读取数据,并使用字符集 utf8 元标记在 html 页面上以阿拉伯​​语正常显示它。

当我看到数据库中的数据存储为不可读的编码时出现问题,在搜索 Perl 模块 DBI 后,我发现我应该这样做:

$dbh->{'mysql_enable_utf8'} = 1;
$dbh->do('SET NAMES utf8');

在连接到数据库后立即进行,但我没有这样做。

现在,如果我这样做,即使在 mysql 浏览器 Windows 应用程序中,表中存储的新数据也会在任何地方正确显示。

现在的问题是表中已经存储了数据,它似乎是双重 utf8 编码或类似的东西。当上述标志未设置时如何修复已存储的数据。

最佳答案

经过几天的搜索,没有找到直接修复mysql中的数据或使用Perl等编程的方法。

我所做的唯一解决方案是从 mysql 中导出数据,就像我放入数据一样,这似乎是由 Perl 编码的双 utf8 到文本文件,但在我首先在 Perl 中对其进行 utf8 解码之后。

之后,数据被正确保存到UTF8格式的文本文件中,可以在Perl和mysql中作为有效的UTF8数据直接导入或管理。

关于mysql - 将Mysql存储的数据转换为正确的utf8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27620500/

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