将信息保存到数据库字段时,设置如下:
pageLoad()
一旦用户更新了这些信息,我注意到很多信息被保存为“???????????????????????????????????????????????????? ?? ?????“ (问号)到数据库。 保存英语(语言)信息时没有问号。 所有其他语言都带有问号保存。
现在我已将字符集更改为utf8并正确保存所有语言。
问题是我需要恢复保存为问号的信息。 例如:“????????????????????????????”
XAMPP版本:5.6.19
Navicat版本11.0.17
数据库服务器
服务器版本:10.1.10-MariaDB - mariadb.org二进制发行版
Web服务器
Apache / 2.4.17(Win32)OpenSSL / 1.0.2d PHP / 5.6.19
PHP版本:5.6.19
phpMyAdmin的
版本信息:4.5.1
请帮助我获取原始数据。
答案 0 :(得分:0)
MySQL将这些字符插入数据库后替换了带有问号的字符。原始数据永远丢失 - 没有办法恢复它。
答案 1 :(得分:0)
检查您的php / apache / codeigniter日志以获取数据库插入/更新 - 也许您会在那里找到插入的原始数据。
答案 2 :(得分:0)
这是因为数据库整理造成的。在这种特殊情况下,它是latin1_swedish_ci
。
实际上,排序规则是一组字符,可以在数据库中的表的字段中使用。 如果您尝试使用不在此归类的字符集中的字符,MySQL会将其替换为问号,因为它不知道该字符是什么。
话虽如此,却无法检索您的数据。 唯一的方法是扫描应用程序或MySQL的一些日志(如果有的话)。
答案 3 :(得分:0)
您必须在排序规则集类型中选择UTF-8_general_ci编码。
不是latin1_swedish_ci
答案 4 :(得分:0)
我认为有一种方法可以通过mysqli::query
从数据库中获取数据并使用
mysqli::set_charset
选择之前(也许您需要使用utf-8等不同的字符集尝试多次)。然后,您可以拥有原始数据数组,然后更改表和数据库归类毕竟保存数据。