最近,我将.apk文件的扩展名更改为.txt,尽管如此,我还是能够在记事本上打开它,并带有一些随机字符,这些字符在文件中的键盘上是不可用的。
org/antlr/runtime/ANTLRFileStream.class…TmOÓP=w[×QËÀ)ê|A…ÑETÔ¢NP¢™ãË—º•Q3ZÓcüþ¿j",£ß4ñGÏmÇñ˽Ïs{žçœçeûùëóW ±¨á0F5d0ÖA˔‹LÈã’ŠËR˜PqEƒ†Iy\•ØkÒºÞÁЂ´¦TL«˜H95{ÙÚ°2K/×–Y³Üªù(ð·:%œv\'¸!Гû÷óðª@¢èUܵä¸öòæÆÛ_±^ÔÂt^ÙªZ¾#ýæc"XwêKž_5-7¨ù¦¿éΆmÞZ^Y*ÍS “ÛÖ¹µ¹7eûUàxn]%µ‘Ð^TÊvË^…kžUˆ;u_àTw<sÁ}µDL%ÛªØ>ùÄš@º…Rø˜¨;o)\,0ǚԞ݇ؓ‡àΪ<ò6ýr³¥GsÃ횪EOÌ_…É =è•ǬŽ#8ª£½ú^fùõ˜Ž›¸%pü IT{`Á2þ¶<Š:î`NÇ<î긇A˜èÿïˆ8Ç0Q¥»¨#- Ze7srRÉšíVƒõÐ]0rí&tÀ”O´‡[Y±K ö¬H›¯Ü %÷¬8Ì) r+åšW·ÑÏF†¿,bd—i%h³ˆá8½YÄiª‘
不仅如此,在转换许多其他扩展(如.jar、.xapk等)时,还会向我展示这些字符。
请任何人解释,这些字符是基于什么因素,以及操作系统如何决定或尝试在不受支持的文件中显示哪些字符。
有办法通过这些数据获取原始内容吗?
发布于 2021-07-15 16:39:54
假设您创建了一个文本编辑器,它可以编写和保存文本文件以及打开的文本文件。您还定义了用于将文本保存在二进制文件中的编码(保存时的所有文件都是二进制文件)。因此,您的编码如下所示:
Your encoding Emacs encoding
TEXT BINARY TEXT BINARY
A 01000001 ă 01000001
B 01000010 Ћ 01000010
... ...
Z 01011010 Ϡ 01011010
假设您创建了一个以“ABZ”为内容的文件。此文件保存时包含值0100000100001001011010。当您用文本编辑器打开这个文件时,编辑器发现010000010100001001011010作为文件内容,并且使用上面的编码它知道它的'ABZ‘,因此它在屏幕上打印'ABZ’。
现在假设您使用emacs打开同一个文件,因为emacs使用自己的编码显示"ăЋϠ",所以emacs没有什么问题。它只是不知道数据是用您的自定义编码编写的。
所以关键是每个文件都是用一种特定的格式编写的,例如APK格式只能被Android系统正确理解。当您尝试在文本编辑器中打开APK文件时,它只是尝试以与上面示例中emacs相同的方式理解二进制数据。
有办法通过这些数据获取原始内容吗?
如果您知道写入数据的最初编码方式,那么您可以使用相同的编码方式读取文件的内容。
https://stackoverflow.com/questions/68394273
复制相似问题