Menu
Woocommerce Menu

显示乱码的探究分析,XP和Ubuntu双系统误删分区后数据恢复过程

0 Comment

我的笔记本安装的是Windows
XP和Ubuntu
双系统,我的电脑有C,D,E(60G),F(60G),I(40G)五个盘,由于Ubuntu
系统出现问题,我想把装Ubuntu 的那个磁盘分区格式化然后重新安装Ubuntu
系统,但在我的电脑的管理界面中不小心点错了,把这个磁盘I给删除了,不知道为什么E,F也同时消失了,在E和F中有我重要的东西,界面中出现177G大小(刚好是E,F,I的大小和已经删除的文件大小差不多)的未使用空间.

我们从Windows的中文操作系统下,下载下来mp3,Tag正常显示,推进Android机后,却出现乱码,这是为什么呢?

第一种方法:
cat -A filename 就可以看到Windows下的断元字符 ^M
要去除他,最简单用下面的命令:
dos2unix filename

然后我使用硬盘数据恢复工具easyrecovery_setup.exe对177G的空间进行恢复,经过easyrecovery高级恢复之后,E盘中的数据和F盘中的部分数据可以找到,同时也出现一个LOSTFILE的文件,里面包含了以前我删除的文件还有F盘中余下的文件,但文件的目录已经损毁,恢复后里面的数据好多是乱码,我写的代码都成了乱码.

之所以在中文系统中没有特别的问题,是因为通常电脑生成的MP3简体中文ID3标签是ID3V2.3版本,编码是ANSI,GB2312/GBK从双字节上兼容ANSI标准。而在UTF-8/Unicode为标准的系统中如Linux(Ubuntu),Android中就容易出现这种问题。

第二种方法:
sed -i ‘s/^M//g’ filename
#注意:^M的输入方式是 Ctrl + v ,然后Ctrl + M

然后我使用FinalData_3.0.8.1201_XiaZaiBa恢复工具恢复分区,经过FinalData的恢复,F盘中的数据都可以看到了,然后我将他们全部恢复在移动硬盘中,恢复完毕后重新启动,重启完成后出现了grub
rescue的界面,然后我用一张windows光盘引导,重新建立MBR,然后进入了windows界面,然后我格式化了E,F,I盘,重新安装Ubuntu操作系统。

解决办法先明确几个知识点:

第三种方法:
#vi filename
:1,$ s/^M//g
银河国际网址手机版,^M 输入方法: ctrl+V ,ctrl+M

银河国际网址手机版 1

首先明确一点,文件不存在什么编码(归根结底文件都是二进制文件,用ue打开可以看到都是一个个的16进制数),只有文件中的字符才可以说编码。

第四种方法:
#cat filename |tr -d ‘\r’ > newfile
#^M 可用 \r 代替

unicode和ansi都是字符代码的一种表示形式。

银河国际网址手机版 2

使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI
编码。在简体中文系统下,ANSI 编码代表 GB2312
编码,在日文操作系统下,ANSI 编码代表 JIS 编码。

  不同 ANSI
编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段
ANSI 编码的文本中。

常见编码介绍

ansi编码

最初的计算机是又8个晶体管,通过晶体管的开合与排列可以表示数种状态,所以一个字节就定义为8bit,而一个bit只能有0,1开关的表示,2的8次方是256,所以最初的计算机只能表示256种状态。

人们定义了前32个为状态字符比如翻页,换行,发出(嘟)的声音等,后来人们为了用计算机存储文字,又把空格,英文字母,数字等加进了进来,总共使用了127个,这时候大家把这个存储方案叫做ANSI的ASCII编码[American
Standard Code for Information
Interchange,美国信息互换标准代码](),这个表存储英文已经没有
问题了,但是127个里并不包含其它欧洲国际的文字,人们又继续扩展ASCII表的内容,加入了一些字符,与一些画表格的符号,直接扩展到255个。

ASCII和Ansi编码

    字符内码(charcter
code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为

    单字节内码 — Single-Byte character sets
(SBCS),可以支持256个字符编码.

    双字节内码 — Double-Byte character
sets)(DBCS),可以支持65000个字符编码.

标签:,

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图