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.