2017-08-11 129 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的某些日誌(如果有的話)。