Кіріспе
Компьютерде жай мәтін – оқылатын материалдың пішімделмеген таңбаларынан тұратын деректердің атауы. Бұл деректер (мысалы, файл мазмұны) тек оқылатын материалдың таңбаларын ғана білдіреді, бірақ оның графикалық бейнеленуін немесе басқа да объектілерді (қозғалмалы нүктелі сандар, суреттер және т.б.) емес. Онда мәтіннің қарапайым орналасуына ғана әсер ететін, мысалы, бос орындар, жол үзілістері немесе табуляция таңбалары сияқты шектеулі «бос орын» таңбалары болуы мүмкін. Жай мәтін стильдік ақпарат қосылған пішімделген мәтіннен, құжаттың құрылымдық бөліктері (параграфтар, бөлімдер және т.б.) анықталған құрылымдалған мәтіннен және кейбір бөліктері екілік нысандар ретінде түсіндірілуі тиіс екілік файлдардан (кодталған бүтін сандар, нақты сандар, суреттер және т.б.) ерекшеленеді. Кейде бұл термин өте еркін қолданылып, тек «оқылатын» мазмұн ғана бар файлдарды (немесе сөйлеуші ұнатпайтын нәрселер жоқ файлдарды) білдіреді. Мысалы, ол шрифттерді немесе макетті (мысалы, белгілеу, markdown немесе тіпті табуляцияларды), қисық тырнақшалар, үзілмейтін бос орындар, жұмсақ дефистер, em тирелер және/немесе лигатуралар сияқты таңбаларды немесе басқа да элементтерді қамтуы мүмкін. Принцип бойынша, жай мәтін кез келген кодталуда болуы мүмкін, бірақ кейде бұл термин ASCII-ді білдіреді деп түсініледі. UTF-8 және UTF-16 сияқты Unicode негізделген кодтаулардың кеңінен таралуымен байланысты, мұндай қолданыс азаюы мүмкін. Жай мәтін кейде «бинарлық» файлдарды алып тастау үшін де қолданылады: файлдың кем дегенде бір бөлігі қолданыстағы таңбалық кодтау арқылы дұрыс түсіндірілмейтін файлдар. Мысалы, «hello» сөзінен (кәдімгі кодтаумен) тұратын файл немесе жол, одан кейін таңба емес, екілік бүтін санды білдіретін 4 байт, – бұл бинарлық файл. Жай мәтін файлын басқа таңбалық кодтауға түрлендіру, егер дұрыс таңбалық кодтау қолданылса, мәтіннің мағынасын өзгертпейді. Алайда, бинарлық файлды басқа форматқа түрлендіру мәтіндік емес деректердің түсіндірілуін өзгерте алады.
In computing, plain text is a loose term for data (e. g. file contents) that represent only characters of readable material but not its graphical representation nor other objects (floating point numbers, images, etc.). It may also include a limited number of "whitespace" characters that affect simple arrangement of text, such as spaces, line breaks, or tabulation characters. Plain text is different from formatted text, where style information is included; from structured text, where structural parts of the document such as paragraphs, sections, and the like are identified; and from binary files in which some portions must be interpreted as binary objects (encoded integers, real numbers, images, etc.). The term is sometimes used quite loosely, to mean files that contain only "readable" content (or just files with nothing that the speaker does not prefer). For example, that could exclude any indication of fonts or layout (such as markup, markdown, or even tabs); characters such as curly quotes, non breaking spaces, soft hyphens, em dashes, and/or ligatures; or other things. In principle, plain text can be in any encoding, but occasionally the term is taken to imply ASCII. As Unicode based encodings such as UTF 8 and UTF 16 become more common, that usage may be shrinking. Plain text is also sometimes used only to exclude "binary" files: those in which at least some parts of the file cannot be correctly interpreted via the character encoding in effect. For example, a file or string consisting of "hello" (in any encoding), following by 4 bytes that express a binary integer that is not a character, is a binary file. Converting a plain text file to a different character encoding does not change the meaning of the text, as long as the correct character encoding is used. However, converting a binary file to a different format may alter the interpretation of the non textual data.
Қолданылуы
Бүгінгі таңда қарапайым мәтінді қолданудың мақсаты, ең алдымен, өзіне ерекше кодтау, пішімдеу немесе файл пішімі қажет ететін бағдарламалардан тәуелсіздік алу болып табылады. Қарапайым мәтіндік файлдарды кез келген жерде қолжетімді мәтіндік редакторлар мен құралдармен ашуға, оқуға және өңдеуге болады. Командалық қатар интерфейсі адамдарға қарапайым мәтінде командалар беруге және әдетте қарапайым мәтінде жауап алуға мүмкіндік береді. Көптеген басқа компьютерлік бағдарламалар да қарапайым мәтінді өңдеуге немесе жасауға қабілетті, мысалы, DOS, Windows, классикалық Mac OS, Unix және оның туысқандарындағы көптеген бағдарламалар; сондай-ақ веб-браузерлер (Lynx және Line Mode Browser сияқты кейбір браузерлер тек қарапайым мәтінді көрсетуге арналған) және басқа да электрондық мәтін оқырмандары. Қарапайым мәтіндік файлдар бағдарламалауда кеңінен қолданылады; бағдарламалау тіліндегі нұсқауларды қамтитын бастапқы код файлы көбінесе қарапайым мәтіндік файл болып табылады. Қарапайым мәтін конфигурациялық файлдар үшін де жиі қолданылады, олар бағдарлама іске қосылғанда сақталған параметрлерді оқу үшін пайдаланылады. Электрондық поштаның көп бөлігі қарапайым мәтінмен жазылады. Пікір, ".txt" файлы немесе TXT жазбасы көбінесе адамдар оқи алатын, пішімделмеген қарапайым мәтінді қамтиды. Білімді тұрақты сақтау үшін ең жақсы формат – емес, бинарлық формат, қарапайым мәтін.
Таңба кодтамалары
1960-шы жылдардың басына дейін компьютерлер мәтінге қарағанда, негізінен сандарды өңдеу үшін пайдаланылды, ал жад өте қымбат болды. Компьютерлер әр таңбаға тек 6 биттен бөліп, бар болғаны 64 таңбаға мүмкіндік берді. A, Z, a, z және 0–9 таңбаларына кодтар тағайындалғаннан кейін, тек 2 код қалады – мұның жеткіліксіз екені анық. Көптеген компьютерлер кіші әріптерді қолдаудан бас тартты. Осылайша, Роберто Бусаның "Index Thomisticus", Brown Corpus және басқа да алғашқы мәтіндік жобалар үлкен әріптерді көрсету үшін жұлдызшаны (*) пайдалану сияқты конвенцияларды қолдануға мәжбүр болды. IBM-нің қызметкері Фред Брукс 8 биттік байттарға көшуді қатысты түрде талап етті, себебі болашақта адамдар мәтінді өңдеуге мұқтаж болуы мүмкін, және ол жеңіске жетті. IBM EBCDIC жүйесін қолданса да, содан бері көптеген мәтіндер ASCII кодировкасында сақталды, онда (баспаға шығармайтын) басқару таңбалары үшін 0-ден 31-ге дейінгі мәндер, ал әріптер, сандар және тыныш белгілер сияқты графикалық таңбалар үшін 32-ден 127-ге дейінгі мәндер пайдаланылды. Көптеген машиналар таңбаларды 7 емес, 8 битте сақтады, қалған битті назарға алмады немесе оны тексеру сомасы ретінде пайдаланды. ASCII-нің кең таралғаны үлкен көмек болды, бірақ халықаралық және тілдік мәселелерді шеше алмады. Доллар белгісі ("$") Англияда аса пайдалы емес еді, ал испан, француз, неміс, португал және басқа көптеген тілдерде қолданылатын әріп үстінде белгілер ASCII-де мүлдем болмады (грек, орыс және көптеген шығыс тілдерінде қолданылатын таңбаларды есептемегенде). Көптеген жеке тұлғалар, компаниялар және елдер қажет болған жағдайда қосымша таңбаларды анықтады, көбінесе басқару таңбаларын қайта тағайындады немесе 128-ден 255-ке дейінгі мәндерді пайдаланды. 128-ден жоғары мәндерді пайдалану 8-інші битті тексеру сомасы ретінде пайдаланумен қақтығысқа түседі, бірақ тексеру сомасын пайдалану біртіндеп тоқтатылды. Бұл қосымша таңбалар әртүрлі елдерде әртүрлі кодталды, сондықтан мәтіндерді автордың ережелерін білместен декодтау мүмкін емес еді. Мысалы, браузер бір таңбалар жиынтығын басқасы ретінде түсіндіруге тырысса, ` орнына ¬A көрсетуі мүмкін. Халықаралық Стандарттау Ұйымы (ISO) ISO 8859 стандарты бойынша бірнеше кодтық беттерді әзірледі. Біріншісі (ISO 8859-1) "Latin 1" деп те аталады және латын әріптерін пайдаланатын көптеген (бірақ барлық емес) еуропалық тілдердің қажеттіліктерін қамтиды (барлығын қамтуға жеткілікті орын болмады). ISO 2022 файлдың ортасында әртүрлі таңбалар жиынтықтары арасында "көшуге" арналған конвенцияларды ұсынды. Көптеген басқа ұйымдар осыған ұқсас нұсқаларды жасады, ал көптеген жылдар бойы Windows және Macintosh компьютерлері үйлесімсіз нұсқаларды пайдаланды. Мәтінді кодтау жағдайы күрделене түсті, нәтижесінде ISO және Unicode консорциумы барлық белгілі (немесе кем дегенде қазіргі уақытта белгілі) тілдерді қамтитын бірыңғай, біріктірілген таңба кодировкасын әзірлеуге күш салды. Кейбір қақтығыстардан кейін бұл күш-жігер біріктірілді. Unicode қазіргі уақытта 1,114,112 кодтық мәнді қабылдайды және барлық қазіргі заманғы мәтін жазу жүйелерін, сондай-ақ көптеген тарихи жүйелерді және көптеген тілдік емес таңбаларды, мысалы, принтерлік дингбаттарды, математикалық символдарды және т.б. қамтитын кодтарды тағайындайды. Мәтін кодировкасына қарамастан, ол жай мәтін болып саналады. Оны дұрыс түсіну немесе өңдеу үшін алушы қолданылған кодировканы білуі (немесе анықтауы) керек; алайда, олар пайдаланылған компьютерлік архитектура туралы немесе деректерді жасаған бағдарламаның (болған жағдайда) екілік құрылымдары туралы ештеңе білуі міндетті емес. Жай мәтіннің нақты кодировкасын нақты көрсетудің ең көп таралған тәсілі – MIME түрін пайдалану. Электрондық пошта мен HTTP үшін әдепкі MIME түрі – таңбаланбаған "text/plain" жай мәтіні. Электрондық поштада да, HTTP-де де жиі қолданылатын тағы бір MIME түрі – "text/html; charset=UTF-8" жай мәтіні, UTF-8 таңба кодировкасын HTML таңбалауымен пайдаланады. Тағы бір кең таралған MIME түрі – JSON таңбалауымен UTF-8 кодировкасын пайдаланатын "application/json" жай мәтіні. Егер құжат кодировка туралы нақты ақпаратсыз алынса, кейбір қолданбалар қолданылған кодировканы анықтауға тырысады.
Бақылау кодтары
ASCII алғашқы 32 кодты (0–31 сандары) "C0 жиынтығы" деп аталатын басқару таңбалары үшін резервтейді: бұл кодтар бастапқыда басып шығарылатын ақпаратты емес, ASCII қолданатын құрылғыларды басқару (мысалы, принтерлерді) немесе магниттік таспаға сақталған деректер ағыны туралы қосымша ақпарат беру үшін жасалған. Оларға жаңа жол және табу таңбалары сияқты жиі қолданылатын таңбалар кіреді. 8 биттік таңбалар жиынтығында, мысалы, Latin 1 және басқа ISO 8859 жиынтықтарында, "жоғарғы жартысының" алғашқы 32 таңбасы (128-ден 159-ға дейін) да "C1 жиынтығы" деп аталатын басқару кодтары болып табылады. Олар тікелей қолданылуы сирек; ISO 8859 кодтауындағы құжаттарда кездескенде, олардың кодтық орны әдетте Windows 1252 немесе Mac OS Roman сияқты жүйеге тән, меншік кодтаудың сол позициядағы таңбаларына сілтеме жасайды, олар осы кодтарды қосымша графикалық таңбаларды ұсыну үшін пайдаланады. Unicode қосымша басқару таңбаларын анықтайды, соның ішінде екі бағытты мәтін бағытын өзгерту таңбаларын (солдан оңға жазудың ішінде оңнан солға жазуды және керісінше нақты көрсету үшін қолданылады) және CJK идеограммаларының, эмодзилердің және басқа таңбалардың баламалы формаларын таңдау үшін вариация таңдауларын қамтиды.