Zapisywanie „Bush ukrył fakty” w notatniku


54

Kiedy zapisując tekst „Bush ukrył fakty” w notatniku w systemie Windows XP, dlaczego po ponownym otwarciu pokazuje kwadraty zamiast tekstu?

Widziałem to w tym filmie, jeśli potrzebujesz przykładu

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


28
Nawiasem mówiąc, jest tak samo dla dowolnej sekwencji 4-3-3-5 liter, nie tylko tej.
grawity

15
Przykład: „John zjadł bekon”
Troggy

Odpowiedzi:


93

Jest to spowodowane problemem z funkcją Win32 API IsTextUnicode, która pochodzi z systemu Windows NT 3.5. Jeśli plik jest zakodowany w ANSI, funkcja zinterpretuje go jako UTF-16LE, co spowoduje, że znaki będą nieczytelne.

Zafascynowało mnie to, odkąd to odkryłem, odkąd byłem trochę młody i naiwny, myślałem, że to prawdziwy spisek :)

Tak naprawdę jest artykuł w Wikipedii na ten temat, który można znaleźć tutaj .


17
Ciekawy. +1 za artykuł na Wiki, który nauczył mnie słowa „mojibake” i jego szczególnie meta ostrzeżenie, że „bez odpowiedniego wsparcia renderowania możesz zobaczyć znaki zapytania, ramki lub inne symbole ...” :-)
jtb

3
+1, ponieważ pomimo używania systemu Windows tak długo, jak pamiętam, jakoś nigdy tego nie spotkałem!
Jared Harley,

7
Cóż, to wyraźnie błąd, ponieważ oprogramowanie niepoprawnie. Najlepsze, co możesz argumentować, to to, że takich błędów nie da się wyeliminować bez utraty innych funkcji. I, cholera, Microsoft naprawił to w Vistę [według Wiki], więc ktoś najwyraźniej myślał, że to też błąd.
John Fouhy

11
Nie jest to błąd, jeśli robi dokładnie to, co reklamuje (tj. Udokumentował). Jest dokładnie określone, że jest to test statystyczny i nie jest niezawodny, a im krótszy sygnał wejściowy, tym wyższy poziom błędu. Tak się składa, że ​​w tym przypadku zdarza się, że zdanie ma sens dla człowieka. To konkretne zdanie nie działa w systemie Vista i 7, ponieważ implementacja IsTextUnicode została zmieniona i przypuszczalnie poprawiona, a teraz poprawnie raportuje dla tego zdania. To, co mamy, to lepszy lub gorszy współczynnik fałszywie dodatnich / ujemnych, a nie błędy.
KTC

5
„To nie jest błąd, jeśli robi to, co powinien.” Tak, może technicznym terminem jest „wada projektowa” czy coś takiego, ale myślę, że większość ludzi nadal powiedziałaby, że można nazwać to błędem.
davr,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.