# Notepad

Notepad (Nederlandse versie: Kladblok) is een kleine teksteditor die standaard bij elk Windows-besturingssysteem geleverd wordt. Notepad kan alleen worden gebruikt voor onopgemaakte tekst.

## Mogelijkheden

Alle beschikbare lettertypen kunnen worden gebruikt, maar slechts één tegelijk voor het hele document. Het lettertype wordt niet in het document opgeslagen. Er is een functie om de tijd en datum in te voegen en de mogelijkheid om het gemaakte document af te drukken. Het programma ondersteunt diverse printerinstellingen, zoals de paginagrootte en de marges.
Notepad gebruikt de combinatie carriage return linefeed om naar het begin van een nieuwe regel gaan. Elk apart zijn ze net als veel andere stuurtekens niet zichtbaar. Als het tekstgedeelte waar ze voorkomen niet wordt bewerkt worden ze bij het opslaan van een bewerkte tekst onveranderd weer opgeslagen.
Een spatie aan het eind van een regel is indirect te zien doordat de cursor erachter geplaatst kan worden. Het verschil tussen een tab en meerdere spaties is te zien doordat de cursor niet, respectievelijk wel in een tussenpositie kan worden geplaatst.
Het standaardlettertype dat wordt gebruikt in Notepad is Lucida Console.

## Ondersteunde tekencoderingen

Recente versies van Notepad werken in principe met alle tekens van Unicode.
Bij het opslaan biedt Notepad de keuze uit de volgende tekencoderingen:
* ANSI (er worden geen bytes toegevoegd) - correcte opslag is alleen mogelijk als alle tekens tot ANSI behoren; zo niet dan verschijnt een waarschuwing; als men aangeeft de tekst toch als ANSI te willen opslaan worden alle tekens die niet tot ANSI behoren vervangen door "?" (0x3F)
* UTF-8 (er worden aan het begin toegevoegd 0xEF 0xBB 0xBF om aan te geven dat het UTF-8 is)
* UTF-16:
** aangeduid als Unicode (er worden aan het begin toegevoegd 0xFF 0xFE)
** aangeduid als Unicode big endian (er worden aan het begin toegevoegd 0xFE 0xFF)
De toevoegingen zijn de Unicode signatures (ook byte order marks genoemd, hoewel ze slechts deels fungeren om de endianness aan te geven), waarvan de betreffende volgens de Unicode standaard aan het begin van een bestand kan worden toegevoegd om aan te geven dat het een bepaald type Unicodebestand is. Zonder de toevoeging zou niet bepaald kunnen worden of bijvoorbeeld een bestand met de inhoud 0xC3 0xA9 bedoeld is als ANSI-bestand met de tekst "Ã©" of als UTF-8 bestand met de tekst "é". Overigens kan met het systeem van de toevoegingen ook niet bepaald worden of bijvoorbeeld een bestand met de inhoud 0xEF 0xBB 0xBF 0x41 bedoeld is als UTF-8 bestand met de tekst "A" (zoals Notepad veronderstelt) of als ANSI-bestand met de tekst "ï»¿A". In een context waarin een tekst beginnend met "ï»¿" onwaarschijnlijk is, is de kans echter groot dat de veronderstelling die Notepad doet correct is.
Ook zonder Unicode signature lijkt Notepad bij het openen van een bestand te beoordelen welke tekencodering waarschijnlijk is (zie ook onder).
Notepad heeft lange tijd de regeleindes van Unix/Linux niet ondersteund, maar sinds de insider build van 8 mei is er ondersteuning voor dit type regeleindes in de Windows 10-versie van Notepad.

## Alternatieven

Er zijn verscheidene opensourcevarianten van Notepad die extra functionaliteit toevoegen, vaak voor het bewerken van broncode. Voorbeelden hiervan zijn Notepad++ en Notepad2.

## Bush hid the facts

Bush hid the facts is een bug in Windows Notepad op oude versies van Windows. De bug treedt op als men een nieuw document aanmaakt met de tekst "Bush hid the facts" en dit opslaat. Wanneer dit document wordt geopend verschijnen er blokjes.
Alhoewel "Bush hid the facts", of ook wel "Bush had the facts", de zin is die meestal geciteerd wordt op het internet om de fout te illustreren, is het niet uitsluitend deze combinatie die de bug kan veroorzaken. Hij kan worden geactiveerd door verschillende zinnen met letters en spaties in een bepaalde volgorde (4-spatie-3-spatie-3-spatie-5), (4-spatie-5-spatie-3-spatie-5), en (1-spatie-4-spatie-3-spatie-3), alsmede andere combinaties, die kunnen worden ontleed in geldige (weliswaar zinloze) Chinese karakters in Unicode.
De bug doet zich voor wanneer de ANSI-string wordt doorgegeven aan de Win32 charset detectiefunctie IsTextUnicode zonder andere tekens. Door deze bug zal IsTextUnicode TRUE retourneren, wat betekent dat toepassingen die er gebruik van maken het verkeerd zullen interpreteren als UTF-16LE. Als men bijvoorbeeld een tekstbestand met dergelijke string in een teksteditor die IsTextUnicode gebruikt toepast, wordt de tekst weergegeven als negen (4-3-3-5), tien (4-5-3-5), of zeven (1-4-3-3) Chinese karakters - of rechthoekige blokjes, indien het taalpakket nog niet is geïnstalleerd.
De bug verscheen voor het eerst in Windows NT 3.5, maar werd niet ontdekt tot begin 2004. Oudere versies van Notepad zoals die bij Windows 95, 98, Me, NT 3.1 werd meegeleverd, ondersteunen Unicode niet en vertonen dan ook deze bug niet.
Het fenomeen doet zich ook niet voor vanaf Windows Vista en Windows 7 omdat hun versie van IsTextUnicode aangepast werd.
* ↑ Windows' Notepad Finally Supports Unix/Linux Line Endings, 8 mei 2018, Phoronix (geraadpleegd op 10 mei 2018)
* ↑ IsTextUnicode op http://msdn.microsoft.com