我有一段“怪物性格”的句子(有人发给我的)。
æ��該å��è¬�: å�¨å®¶è£¡æ�¯ä¸�å�¯ä»¥è¬�æ°�主ç��ã��æ� �以, æ��æ��ç�¶å�ºç�¾ç³¾ç´�, ä¸�ä½�ä¸�å�¯ä»¥ç��é �, é��å�¯è� ½æ��ç¯�å¤�ç��æ��... ä½�大ç��, å�¯æ��è®�ä¸�è®...
有没有办法将其解码回正常字符?
我有一段“怪物性格”的句子(有人发给我的)。
æ��該å��è¬�: å�¨å®¶è£¡æ�¯ä¸�å�¯ä»¥è¬�æ°�主ç��ã��æ� �以, æ��æ��ç�¶å�ºç�¾ç³¾ç´�, ä¸�ä½�ä¸�å�¯ä»¥ç��é �, é��å�¯è� ½æ��ç¯�å¤�ç��æ��... ä½�大ç��, å�¯æ��è®�ä¸�è®...
有没有办法将其解码回正常字符?
从理论上讲,这是可能的。
您可以反转各种编码。例如,这里有一个用俄语执行此操作的工具。
当然,自动执行此操作会好得多;可以这样做,因为 Microsoft Word 等程序在打开文件时会执行类似的操作。如果您尝试使用 Word 打开二进制文件,您会看到它有时会提示您选择一种编码,因为它找不到编码,并显示最可能的编码列表。
我认为这样做的方式是检查有关字符出现的统计信息。例如,在英语中,“e”和“t”比“q”和“j”出现得更多。这是众所周知的;出于这个原因,摩尔斯电码只对“e”和“t”使用一个点和一个破折号,而对“q”和“j”使用四个点和破折号。
因此,执行此操作的假设工具可能会尝试很多编码组合(很多!)并检查哪个看起来最像真正的语言。
其他启发式方法可能是每种语言的字典,但这开始成为一个非常密集的过程。
这个答案并不是真正的解决方案,但互联网上有一些软件提供了编码修复功能,可以完成这项工作。
其中一个是中文软件(http://www.cpatch.org/thread-12818-1-1.html)。我把链接放在这里,以防有人在寻找它。
我尝试使用 PHP 函数mb_detect_encoding
and iconv
,但没有一个可以成功转换字符串。由于复制和粘贴不完整,数据可能会永久丢失。