2017-08-11 99 views
5

虽然保存信息到数据库字段的设置如下:恢复保存为“???????”的原始数据从MySQL数据库

character set: latin1 
collation: latin1_swedish_ci 

一旦更新此信息的用户,我注意到,很多信息被保存为“???????? ?????? ??????????????? ??????“ (问号)到数据库。 英语(语言)信息保存时没有问题标记。 所有其他语言都用问号保存。

现在我已将字符集更改为utf8,并且所有语言都正确保存。

问题是我需要恢复保存为问号的信息。 例如:“?????????????????????

XAMPP版本:5.6.19
的Navicat版本11.0.17

数据库服务器
Server版本:10.1.10-MariaDB的 - mariadb.org二进制分发

Web服务器
阿帕奇/ 2.4.17(Win32)OpenSSL/1.0.2d PHP/5.6.19 PHP版本:5.6.19

phpMyAdmin
版本信息:4.5.1

请帮我拿到原始数据。

+0

你是指在广场上的问号?还是像你写的正常问号? –

+0

是正常问题标记,如示例 – Pragalath

+2

中给出的好吗...对不起,但没有区别?和?...我不认为任何Post-Data记录。似乎你已经失去了这些数据... –

回答

0

当MySQL插入到数据库中时,用问号替换这些字符。原始数据永远丢失 - 无法恢复。

+1

所以更好地向右移动....没有尝试使用 – Pragalath

0

检查您的php/apache/codeigniter日志是否有数据库插入/更新 - 也许您会在那里找到插入的原始数据。

+0

你能告诉我在哪里可以找到日志? – Pragalath

0

发生这种情况是因为数据库整理。在这种特殊情况下,它是latin1_swedish_ci

实际上,排序规则是一组可用于数据库中表的字段的字符。 如果您尝试使用不在此归类的字符集中的字符,MySQL会用问号替换它,因为它不知道该字符是什么。

话虽如此,没有办法检索您的数据。 唯一的方法是扫描应用程序或MySQL的某些日志(如果有的话)。