在记事本中保存“布什隐藏了事实”

54 character-encoding windows-xp

在Windows XP下在记事本中保存文本“布什隐藏了事实”时,为什么当您重新打开它时显示方块而不是文本?

如果你需要一个例子,我在这个视频中看到了它

http://www.youtube.com/watch?v=9bK9-sc_uus&feature=related

Joh*_*n T 93

这是由于可追溯到 Windows NT 3.5的 Win32 API 函数IsTextUnicode存在问题。如果文件以 ANSI 编码,则该函数会将其解释为 UTF-16LE,从而导致字符不可读。

当我发现它时,这也让我着迷,因为我有点年轻和天真,我认为这是一个真正的阴谋:)

实际上有一篇关于此的 Wikipedia 文章,您可以在此处找到。

  • 有趣的。+1 为教我“mojibake”这个词的 Wiki 文章及其特别的元警告“如果没有适当的渲染支持,您可能会看到问号、框或其他符号......”:-) (17认同)
  • 如果它完全按照它所宣传的(即记录在案的)去做,这不是一个错误。准确地说明它是统计测试而不是万无一失的,并且输入越短,错误率越高。碰巧的是,在这种情况下,它发生在一个对人类有意义的句子中。这个特定的句子不适用于 Vista 和 7,因为 IsTextUnicode 的实现已经更改并可能得到改进,现在它可以正确报告这句话。我们拥有的是更好或更差的误报/否定率,而不是错误。 (11认同)
  • 嗯,这显然是一个错误,因为软件不正确。最好的说法是,在不失去其他功能的情况下,不可能消除这样的错误。而且,见鬼,微软在 Vista 中修复了它 [根据 Wiki],所以那里的人显然也认为这是一个错误。 (7认同)
  • “如果它做它应该做的事情,那就不是错误。” 是的,也许技术术语是“设计缺陷”或其他什么,但我认为大多数人仍然会说将其称为错误是可以的。 (5认同)
  • +1 因为,尽管从我记事起就使用 Windows,但我 ** 从未 ** 遇到过这个问题! (3认同)