【问题标题】:What are the characters shown on a file after forcefully changing the extension?强制更改扩展名后文件上显示的字符是什么?
【发布时间】:2021-07-15 12:56:26
【问题描述】:

最近我将 .apk 文件的扩展名更改为 .txt,尽管如此,我还是可以在记事本上用一些随机字符打开它t 在文件中的键盘上可用。

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«˜H­95{ÙÚ°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 等)时会向我显示这些字符。

谁能解释一下,这些字符基于什么因素,操作系统如何决定或尝试在不受支持的文件中准确显示哪些字符。

有没有办法通过这些数据获取原始内容?

【问题讨论】:

    标签: operating-system executable-jar


    【解决方案1】:

    假设您创建了一个文本编辑器,它可以编写和保存文本文件以及打开文本文件。您还定义了将用于将文本保存在二进制文件中的编码(保存时所有文件都是二进制文件)。因此,您的编码如下所示:

    Your encoding                               Emacs encoding    
    
    TEXT       BINARY                          TEXT       BINARY
    A          01000001                         ă         01000001    
    B          01000010                         Ћ         01000010         
    ...                                         ...
    Z          01011010                         Ϡ         01011010   
    

    假设您创建了一个以“ABZ”为内容的文件。保存时此文件包含值 010000010100001001011010。当您使用文本编辑器打开此文件时,编辑器会找到 010000010100001001011010 作为文件内容,并使用上述编码知道它的“ABZ”因此它会在屏幕上打印“ABZ”。

    现在假设您使用 emacs 打开同一个文件,因为 emacs 使用其自己的编码,它显示“ăЋϠ”,emacs 没有任何问题。它只是不知道数据是使用您的自定义编码写入的。

    所以重点是每个文件都以特定的格式编写,例如APK格式只有Android系统才能正确理解。当您尝试在文本编辑器中打开 APK 文件时,它只是尝试以与上面示例中的 emacs 相同的方式理解二进制数据。

    有没有办法通过这些数据获取原始内容?

    如果您知道写入数据时使用的原始编码,那么您可以使用相同的编码读取文件的内容。

    【讨论】:

    • 感谢您的解释!赞赏。
    猜你喜欢
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 2010-09-08
    • 2020-01-31
    • 1970-01-01
    相关资源
    最近更新 更多