本文版权归cxun所有,如有转载请注明出处与本文链接,谢谢!
原文地址:http://www.cnblogs.com/cxun/p/4544000.html

在手机中把与自己联系好几年的好友的聊天记录不小心删除了,痛苦万分,好在对方的手机里还有一份完整的聊天记录,想把对方的聊天记录转移到自己的手机中来,以下是具体的补救方法。

使用软件:SQLite Expert、iTools

适用手机:iPhone

假设A手机是误操作删除记录的手机,B手机是完整数据源手机。

1.备份

首先,先把B手机的数据备份好,建议使用iTools(现在已更新到3.0,本文截图依然是1.0的),找到微信App中的文档文件夹Documents,整个复制到本地硬盘保存起来吧。

2.计算MD5值

首先要弄清楚双方微信ID用户名的MD5值,这个很重要,在后面操作过程中极易弄混淆。在Documents中,会有若干个MD5哈希值为名称的文件夹,如果该手机只登录过一个微信帐号,就会只有一个MD5哈希值的文件夹;如果有多个,你不知道哪个才是你常用微信帐号文件夹的话,告诉你一个办法,哪个文件夹占用空间大,哪个就是你常用的。那么,这个文件夹名称就是A手机微信ID哈希值,以下简称“A_HASH”。

依次打开其内部文件夹,找到聊天记录核心文件:MM.sqlite,很明显,是个sqlite数据库文件。

使用数据库软件打开,这里推荐使用SQLite Expert,个人版是免费的。在左侧树状图中找到好友数据表“Friend”,其中,UsrName字段就是每个好友的微信ID用户名,NickName字段就是好友的昵称,可以通过昵称找到B手机的微信ID用户名,然后使用MD5计算工具算出它的MD5值,以下简称“B_HASH”。

3.复制聊天记录

首先把A手机的数据库文件复制到本地,即“/Documents/A_HASH/DB/MM.sqlite”,使用SQLite Expert打开,在左侧树状图中找到想恢复的好友的数据表“Chat_B_HASH”,这里有两个情况,分开讨论:

(1)如果是刚刚在A手机中误删除的,且没有与B发生过后续通信,该表则不存在,点击SQLite Expert的SQL标签页,输入SQL语句创建该表:

SQL语句如下(记得改为正确的“B_HASH”):

CREATE TABLE [Chat_B_HASH]
(TableVer INT4,
MesLocalID INTEGER PRIMARY KEY,
MesSvrID INTEGER,
CreateTime INTEGER,
Message TEXT,
Status INTEGER,
ImgStatus INTEGER,
Type INTEGER,
Des INTEGER);

按F5,如果没报错的话,则该数据表创建成功。

(2)如果在A手机中误删除之后,与B产生了新的通信,则该数据表已存在,且存有删除后的通信数据。由于一会要把B手机密切好友的所有聊天记录复制到A手机中,此时A手机与B好友的聊天数据已没有意义,为了避免出现数据重复与其它未知的错误出现,建议将A手机中与B好友的数据删除。删除方法是在左侧树状图中点击B好友的数据表“Chat_B_HASH”(千万别点错),在SQL标签页中输入SQL语句并执行:

delete from Chat_B_HASH

同时,还要使用iTools在iPhone中删除与B好友聊天记录相关的语音、图片、视频等文件(不放心的话可以先把这些数据备份出来),在iTools中找到这3个文件夹,在文件列表中按“CTRL + A”全选,按“Del”删除。

/Documents/A_HASH/Audio/B_HASH
/Documents/A_HASH/Img/B_HASH
/Documents/A_HASH/Video/B_HASH

接下来就是重头戏了,要把B手机中与A聊天的记录复制到A的数据库文件MM.sqlite中。首先找到并使用SQLite Expert打开第1步中B手机的数据库文件“\Documents\B_HASH\DB\MM.sqlite”,在左侧树状图中找到A的微信数据表“Chat_A_HASH”,点击,在右侧选择“Data”标签页,点击表中数据任意记录,按“CTRL + A”全选(数据量很大的话需要等几秒才有反应),再按“CTRL + C”复制,然后在左侧树状图中选择A手机的数据库,找到刚才3.(1)步创建或3.(2)步删除数据的数据表“Chat_B_HASH”,在右侧“Data”标签页下的数据记录位置中点击一下,按“CTRL + V”粘贴(数据量很大的话也要等几秒才有反应),完成数据的复制。为了避免将A和B的数据库弄混淆,复制完后最好把B的数据库关闭。

4.修改收信与发信的标志位

由于在B手机的微信中,看到的聊天记录中A是在左边,B是在右边,A的对话框泡泡是白色,B的是绿色,现在数据直接复制到A的数据库文件中后,需要将两者的发信收信标志位交换,才能在A的手机中正确显示,否则的话会看到原本是A说的话,变成B说的话了。

在SQLite Expert中,点击刚才粘贴的数据表“Chat_B_HASH”,点击右侧的“SQL”标签页,依次输入并执行以下SQL语句:

update Chat_B_HASH set des=2 where des==0

update Chat_B_HASH set des=0 where des==1

update Chat_B_HASH set des=1 where des==2

切记!这3条语句要一条接一条地执行!即:输入第1条,按一次F5,删掉,再输入第2条,再按一次F5,再删掉,然后再输入第3条,按一次F5,完毕!

5.修改视频数据的标志位

这一步若不执行的话,在最后完成后会造成A手机中视频旁边出现感叹号的问题。在SQLite Expert中,点击刚才粘贴的数据表“Chat_B_HASH”,点击右侧的“SQL”标签页,输入并执行以下SQL语句:

update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="0"','status="4"') where type=43 and des=1;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="1"','status="4"') where type=43 and des=1;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="2"','status="4"') where type=43 and des=1;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="3"','status="4"') where type=43 and des=1;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="0"','status="3"') where type=43 and des=0;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="1"','status="3"') where type=43 and des=0;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="2"','status="3"') where type=43 and des=0;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="4"','status="3"') where type=43 and des=0;

若最后完成后仍发现视频旁边有感叹号出现,请使用终极方法:拿另一台iPhone C,通过WIFI聊天记录迁移的方式迁移到C手机,再迁移回A手机。在迁移过程中会自动修复。

另外,如果B手机的聊天记录是从Android版本的微信迁移过来的,需要执行以下SQL语句,原因是老版的Android微信将视频格式的标志位存储为“44”,需要改成“43”:

update Chat_B_HASH set type=43 where type=44
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'type="44"','type="43"') where type=43

6.复制数据到A手机

进行以上数据库修改操作之后,关闭SQLite Expert(否则复制回iPhone会出错),将修改好的MM.sqlite文件使用iTools导入回A手机微信APP的相应文件夹,即:“/Documents/A_HASH/DB/MM.sqlite”

然后是将B手机中与A聊天的语音、图片、视频导入到A手机微信APP的相应文件夹中,假设在第1步中从B手机备份出来的Documents文件夹存放在D盘,使用iTools将这三个文件夹中的所有文件拖入A手机的微信APP对应的文件夹中:

D:\Documents\B_HASH\Audio\A_HASH  --->  iTools:/Documents/A_HASH/Audio/B_HASH   (文件后缀是:*.aud 等等)
D:\Documents\B_HASH\Img\A_HASH  --->  iTools:/Documents/A_HASH/Img/B_HASH       (文件后缀是:*.pic 与 *.pic_thum 等等)D:\Documents\B_HASH\Video\A_HASH  ---> iTools:/Documents/A_HASH/Video/B_HASH    (文件后缀是:*.mp4 与 *.video_thum 等等)

结语:

在本文的这些操作中,难点就是将A与B弄混淆,因此,在进行此项工作以前,对A与B手机的备份显得尤为重要,一旦弄错,还可以重头再来。

转载于:https://www.cnblogs.com/cxun/p/4544000.html

如何将密切好友的微信聊天记录恢复到自己的微信中相关推荐

  1. 苹果手机微信聊天记录恢复不了怎么办?试试这招

    有些用户的手机内存会比较小,为了能够有更好的使用感,很多用户都会选择定时清理微信的空间,有时候一不小心就将微信聊天记录给清理掉了,该怎么恢复回来呢?大多数用户都认为没办法恢复的,但是却不知道苹果手机微 ...

  2. android微信聊天记录导出到电脑【微信安卓版技巧】

    android微信聊天记录导出到电脑[微信安卓版技巧] 微信,对它又爱又恨!爱的是微信能替代很多手机通话短信,恨的是有些较早前的手机不能友好支持,比如ytkah之前用的i8000,挺上手的,就是没办法 ...

  3. 企业微信聊天记录如何备份?企业微信如何导出聊天记录?

    现在有很多的企业都是使用企业微信跟客户沟通,聊天中产生的聊天记录具有重要价值,因为包含了很多重要信息.如果这时候某位员工的电脑或者手机出现了问题,需要更换,那么这些聊天记录会不会也丢失了呢?如果还在, ...

  4. 微信聊天记录恢复记录

    相关链接: https://zhuanlan.zhihu.com/p/32511173 https://www.zhihu.com/question/50527177 http://www.cnblo ...

  5. 如何恢复微信聊天记录,3个简单方法

    想知道如何恢复微信聊天记录吗?微信聊天记录恢复的确可以通过几种不同的途径进行,不过根据每个人的工作性质或者是恢复紧急程度,我们仍是建议选择最合适自己的方法.目前来说,如果有备份的用户,基本上是通过iT ...

  6. 如何恢复删除好友的微信聊天记录?iPhone手机高效操作方法

    雪上加霜的事情就是,想要恢复的聊天记录竟然还将好友删除了!如何恢复删除好友的微信聊天记录?在删除好友的基础上,还能恢复聊天记录吗?虽然恢复的难度比较大,但是小编还是有方法可以恢复的!赶紧看看是什么方法 ...

  7. 微信聊天记录删除怎么恢复?iOS安卓数据迁移

    因为手机系统的不同,当我们更换手机的时候,怎么样在Android和iOS之间进行数据迁移,也是一个让众多用户头疼的事情.因为数据互传的一个繁琐情况,现在进行数据的迁移,大多都是借助云端备份.第三方软件 ...

  8. 微信聊天记录如何恢复

    微信是现在人几乎每天都要使用的软件,甚至现在连工作都离不开微信,不下心误删了微信聊天记录就麻烦了.当你的微信聊天记录删除了或者找不到了,可以试着把微信聊天记录去恢复再进行查找.具体微信聊天记录怎么恢复 ...

  9. 关于电脑版/PC微信如何恢复聊天记录【实践可行】

    再次试验,发现好像不行.不过组后一段是可以的. # 关于电脑版/PC微信如何恢复聊天记录[实践可行] 你是否在重装电脑,或者升级微信版本,或者误设置的时候发现,打开的微信里的聊天记录空空如也? 但是去 ...

  10. 如何在 iPhone 上恢复微信聊天记录!

    误删了微信聊天记录,如何在 iPhone 上恢复微信聊天记录 如今,微信拥有庞大的用户群,很多人用它来沟通.支付.点餐等与我们日常生活相关的事情,我们的生活已经离不开它,它功能强大,使用方便,给我们带 ...

最新文章

  1. [网络流24题-7]圆桌问题
  2. 小程序的项目结构设计
  3. (视频+图文)机器学习入门系列-第1章 引言
  4. SQL OVER用法
  5. JAVA面试题(part5)--多态与抽象类
  6. Effective Java第三版有哪些新功能?
  7. C++学习之路 | PTA乙级—— 1042 字符统计 (20 分)(精简)
  8. matlab 爬虫 例子,认识爬虫(示例代码)
  9. 墨迹天气语音包_广州天气|冷空气到货,任性吃火锅的理由又有了
  10. 微软商店下载显示错误,win11无法下载更新的解决方法
  11. EVO Evaluation of SLAM 5 --- ORB-SLAM3 精度和性能效果评估
  12. 网页制作语言HTML5的应用
  13. 淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。
  14. Linux已挂载的硬盘无法访问
  15. 简单制作一个Python聊天机器人
  16. java毕业设计大学生心理咨询管理系统mybatis+源码+调试部署+系统+数据库+lw
  17. 瞒不住了,Prefetch 就是一个大谎言
  18. 图像无损放大 API数据接口
  19. wsl2 Error: 0x800701bc 异常
  20. 名人电子北京研发部门关闭

热门文章

  1. 无线AP 传输、认证
  2. 2020-11-03 oracle sql根据身份证号来判断性别
  3. 肿瘤基因检测的解读流程
  4. iphone计算机照片大小,如何把iphone照片导入电脑 四种方法分享【图文】
  5. 听刘万祥老师讲“竖向折线图”、“点图”画法
  6. GATK RNA-Seq Snps Indel 分析
  7. 解决浏览器打开就是被篡改的桔梗网界面
  8. SpringSecurity自定义多Provider时提示No AuthenticationProvider found for问题的解决方案与原理(四)
  9. word技巧-分节符和连续页码,页眉页脚加线
  10. python与或非运算规则_Python逻辑运算符之与或非