Файл форматтары
TXT файлы дегеніміз не? Қарапайым мәтін, кодтау және UTF-8
TXT бар болғаны таңбалар мен жол ауыстырудан тұратын ең қарапайым құжат форматы. Алайда кодтаулар, BOM және жол соңдары оны ең көп қиындық тудыратын форматтардың біріне айналдырады. Әрқайсысын түсіндіреміз.
Автор: Hemen Dönüştür Editör EkibiЖарияланды: 7 мин оқу

TXT компьютердегі ең қарапайым құжат форматы: қалың мәтін де, қаріп те, бет орналасуы да жоқ, тек таңбалар мен жол ауыстырулар. Осы қарапайымдылықтың арқасында ол өте тасымалды. Елу жыл бұрын жазылған мәтіндік файлды бүгін аша аласыз, ал бүгін жазғаныңыз ондаған жылдан кейін де ашылуы әбден мүмкін. Бірақ «қарапайым мәтін» көрінгендей оңай емес. Әріптердің «Ã©» не «?» болып кетуі, жолдардың бір жолға жиналып қалуы, файл басындағы көзге көрінбейтін таңба: мұның бәрі TXT файлының ішіндегі бір жасырын нәрседен, таңбаларды кодтаудан туындайды. Бұл мақалада TXT файлдарының қалай жұмыс істейтіні және осы мәселелерді қалай шешуге болатыны түсіндіріледі.
TXT файлы дегеніміз не?
.txt кеңейтімі бар файлда мәтіндік таңбалардан басқа ештеңе жоқ. Онда тақырып та, метадеректер де, пішім де жоқ; әр байт мәтіннің өзіне тиесілі. Ең маңызды сұрақ мынау: қай байт қай таңбаны білдіреді? Бұл сәйкестік таңбаларды кодтау деп аталады, және TXT файлы әдетте өзінің қай кодтауды қолданатынын айтпайды. Оны ашатын бағдарлама болжауға мәжбүр.
Қысқаша тарих: ASCII-ден UTF-8-ге дейін
ASCII алғаш рет 1963 жылы ASA X3.4-1963 ретінде жарияланды. Ол 7 бит қолданады және 128 таңбаны анықтайды: ағылшын әліпбиі, цифрлар, тыныс белгілері және жол ауыстыру сияқты басқару таңбалары. é, ñ, ö сияқты әріптер, кириллица және қазақ тіліне тән ә, ө, ү, қ, ң әріптері ASCII құрамына кірмейді.
Бұл олқылықты толтыру үшін 8 биттік байттың қалған 128 мәнін әр түрлі тілдерге бөлетін кодтық беттер пайда болды: Батыс Еуропа тілдеріне Windows-1252 және ISO-8859-1, түрік тіліне Windows-1254 және ISO-8859-9, кириллицаға Windows-1251 және тағы басқалары. Мәселе мынада: бір байт әр кодтық бетте әр түрлі әріпті білдіреді. Мысалы, FD байты Windows-1252-де «ý», ал Windows-1254-те «ı» болады. Кодтық бетті қате болжаған бағдарлама мәтінді бұрыс көрсетеді.
Түпкілікті шешім Unicode болды: ол әр жазу жүйесіндегі әр таңбаға бір ғана нөмір береді. UTF-8 осы нөмірлерді байттарға айналдырудың ең кең таралған тәсілі. Роб Пайктың айтуынша, Кен Томпсон UTF-8-ті 1992 жылдың қыркүйегі шамасында бір түні Нью-Джерсидегі асханада дастарқан қағазының үстінде жобалаған. Оның қазіргі анықтамасы 2003 жылғы қарашадағы RFC 3629: UTF-8 U+0000-ден U+10FFFF-ке дейінгі әр таңбаны 1-ден 4-ке дейінгі байтпен кодтайды, ал ASCII таңбаларын ASCII-дегідей бір байтпен жазады.
UTF-8-тің қаншалықты басым екенін веб көрсетеді: W3Techs-тің 2026 жылғы 15 қазандағы деректері бойынша таңбалар кодтауы белгілі сайттардың 99,1%-ы UTF-8 қолданады, одан кейін ISO-8859-1 0,8%-бен және Windows-1252 0,2%-бен келеді.
TXT файлының ішінде не бар?
Таңбалар мен байттар
«café» сөзін UTF-8 және Windows-1252 ретінде сақтасаңыз, әр түрлі байттар аласыз:
Text: c a f é
UTF-8: 63 61 66 C3 A9 (5 bytes)
Windows-1252: 63 61 66 E9 (4 bytes)
UTF-8 файлын Windows-1252 ретінде оқыған бағдарлама C3 мен A9-ды екі бөлек таңба, «Ã©» ретінде көрсетеді. Керісінше, Windows-1252 файлын UTF-8 ретінде оқыған бағдарлама E9-ды жарамсыз деп санап, оның орнына «�» көрсетеді. Таңбалардың бұзылуына қатысты дерлік әр мәселе осы екі жағдайдың бірі.
BOM (байт ретінің белгісі)
Кейбір бағдарламалар UTF-8 файлының басына EF BB BF байттарын қояды. Бұл U+FEFF таңбасының UTF-8 түрі және «бұл файл UTF-8» дегенді білдіретін қолтаңба ретінде қолданылады. RFC 3629 бұл қолтаңбаның әрдайым осы үш байт түрінде болатынын атап өтеді. Unicode FAQ бойынша UTF-8-те BOM міндетті емес және тек қолтаңба қызметін атқарады, ал файл басында ASCII таңбаларын күтетін хаттамаларда оны қолданбаған жөн. Практикада BOM кейбір ескі Windows бағдарламалары мен Excel-ге UTF-8-ті тануға көмектеседі, бірақ Unix қабық сценарийлерін және белгілі бір бағдарламалар оқитын баптау файлдарын бұзуы мүмкін.
UTF-16-да BOM одан да маңызды, себебі ол оқу құралына байт ретін айтады: FF FE little-endian, ал FE FF big-endian UTF-16 дегенді білдіреді.
Жол соңдары
Жолдың аяқталғанын білдіретін таңба да операциялық жүйеге байланысты:
| Жүйе | Жол соңы | Байттар |
|---|---|---|
| Windows | CRLF | 0D 0A |
| Linux, macOS | LF | 0A |
| Классикалық Mac OS (OS X-ке дейін) | CR | 0D |
Көп жыл бойы Windows Блокноты тек CRLF-ті түсінетін, сондықтан Linux-та жазылған файл бір ұзын жол болып көрінетін. Microsoft Блокнотқа LF және CR қолдауын 2018 жылғы 8 мамырда жариялады, ал бұл өзгеріс пайдаланушыларға Windows 10-ның 1809 нұсқасымен жетті.
TXT қайда қолданылады?
- Жазбалар мен жобалар: пішімді қажет етпейтін жылдам жазбалар.
- Бағдарламалық жасақтама: README файлдары, лицензия мәтіндері, бастапқы код, баптау файлдары және журналдар.
- Деректер алмасу: жүйелер арасында берілетін қарапайым тізімдер мен экспорттар.
- Ұзақ мерзімді сақтау: ешбір бағдарламаға тәуелсіз мұрағатталуы тиіс мәтін.
- Қолжетімділік және өңдеу: экран оқу құралдары, іздеу жүйелері және мәтінді талдау құралдары үшін ең таза кіріс.
Күшті және әлсіз жақтары
Күшті жақтары: оны кез келген құрылғы мен операциялық жүйе ашады. Файлдар өте шағын. Бағдарлама нұсқаларына тәуелділік жоқ, зақымдану қаупі өте аз. Git сияқты нұсқаларды басқару жүйелері өзгерістерді жол бойынша көрсете алады. Ол макрос не ендірілген объект тасымалдай алмайды, сондықтан қауіпсіз.
Әлсіз жақтары: онда пішім, сурет, кесте не сілтеме сақтау мүмкін емес. Кодтау файлда жазылмағандықтан, оны қате болжауға болады. Жол соңдарының айырмашылығы жүйелер арасында ұсақ, бірақ мазасыз мәселелер тудырады. Тақырыптар мен тізімдер сияқты құрылым керек болса, Markdown жақсырақ таңдау.
TXT-ті қандай бағдарламалар ашады?
Windows-тағы Блокнот, macOS-тағы TextEdit және Linux-тағы gedit пен ұқсас редакторлар TXT-ті ашады, ал браузерлер мәтіндік файлдарды тікелей көрсете алады. Visual Studio Code, Notepad++ және Sublime Text сияқты кеңейтілген редакторлар күй жолағында кодтау мен жол соңы түрін көрсетеді және екеуін бір шертумен өзгертуге мүмкіндік береді, сондықтан кодтау мәселелерін анықтауға ең ыңғайлы құралдар солар.
Жиі кездесетін мәселелер және оларды шешу
Әріптер «Ã©» не «Ã¼» сияқты көрінеді
Файл UTF-8 ретінде сақталған, бірақ оны оқитын бағдарлама Windows-1252 деп есептейді. Кодтауды таңдауға мүмкіндік беретін редакторда оны UTF-8 ретінде қайта ашыңыз. Егер CSV не мәтіндік файл Excel-де осылай көрінсе, оны BOM бар UTF-8 ретінде сақтау әдетте мәселені шешеді.
Таңбалардың орнына «?» не «�» шығады
Файл ескі кодтық бетте сақталған, бірақ UTF-8 ретінде оқылып жатыр. Оны редакторда дұрыс кодтық бетті таңдап ашыңыз, содан кейін UTF-8 ретінде сақтаңыз. Мәтін нақты «?» таңбаларымен сақталып қалған болса, түпнұсқа таңбалар жоғалған, сондықтан бастапқы көзге оралуыңыз керек.
Бүкіл мәтін бір жолда көрінеді
Ескі редактор LF жол соңдарын түсінбейді. Блокноттың жаңа нұсқасын не кеңейтілген редакторды қолданыңыз немесе жол соңдарын CRLF-ке түрлендіріңіз.
Файлдың басында көрінбейтін таңба бар
Бұл әдетте BOM. Сценарий не баптау файлы бірінші жолда қате берсе, оны «BOM жоқ UTF-8» ретінде сақтаңыз.
TXT файлдарын түрлендіру бойынша кеңестер
Біздің түрлендіргіште TXT файлдары біздің серверге жүктеледі және 30 минут ішінде жойылады. Кодтау автоматты түрде анықталады: алдымен BOM тексеріледі (UTF-8, little- және big-endian UTF-16); BOM болмаса, файлдың жарамды UTF-8 екені тексеріледі; жарамды UTF-8 болмаса, ол ескі түрік Windows кодтық беті Windows-1254 ретінде оқылады. Сондықтан ескі кириллица кодтауындағы (мысалы, Windows-1251) файлдарды жүктемес бұрын UTF-8 ретінде қайта сақтаған дұрыс. NUL байттары көп файлдар мәтін емес, бинарлық файл ретінде қарастырылып, «бұл мәтіндік файл емес» деген хабарлама шығады.
- TXT-ні Word-қа және TXT-ні PDF-ке түрлендіргенде әр жол абзацқа айналады, ал бос жолдар сақталады. Жол басындағы шегіністер (код, өлең не нөмірленген тармақтар) жоғалмауы үшін үзілмейтін бос орындарға айналады, ал жол басындағы табуляциялар төрт бос орынға ауыстырылады.
- TXT-ні Markdown-ға түрлендіру қарапайым мәтінді кейін тақырыптар мен тізімдермен байытқыңыз келгенде жақсы бастама.
- Кері бағытта PDF-ті TXT-ге және Word-ты TXT-ге түрлендіру пішімді алып тастап, тақырыптар мен абзацтарды бос жолдармен бөледі. Біз жасайтын TXT файлдары Блокнот пен Excel сияқты бағдарламаларда әріптер дұрыс көрінуі үшін BOM бар UTF-8 ретінде сақталады.
Жиі қойылатын сұрақтар
TXT файлын қандай кодтауда сақтау керек?
Жаңа файлдар үшін UTF-8. Ол барлық тілдерді қолдайды және вебте дерлік әмбебап стандартқа айналды. Файлды BOM-сыз UTF-8 күтетін бағдарлама оқитын болса, BOM қоспаңыз; Excel сияқты бағдарламаларда ашылатын болса, қосыңыз.
UTF-8 пен BOM бар UTF-8 арасында қандай айырмашылық бар?
Мазмұны бірдей; BOM бар нұсқа жай ғана EF BB BF байттарымен басталады. Бұл қолтаңба кейбір бағдарламаларға кодтауды анықтауға көмектеседі, бірақ басқаларында көрінбейтін бірінші таңба болып шығуы мүмкін.
TXT пен RTF арасында қандай айырмашылық бар?
TXT тек таңбаларды қамтиды. RTF мәтінге ендірілген басқару командалары арқылы қалың, көлбеу мәтін, қаріптер және кестелер сияқты пішімді тасымалдайды. Пішім керек болмаса, TXT қарапайымырақ және тасымалдырақ.
TXT файлының кодтауын қалай білуге болады?
Visual Studio Code және Notepad++ сияқты редакторлар кодтауды күй жолағында көрсетеді. Блокноттың қазіргі нұсқалары да күй жолағында кодтау мен жол соңы түрін көрсетеді.
TXT файлында вирус болуы мүмкін бе?
Қарапайым мәтіндік файлдың өзінде орындалатын код болмайды. «құжат.txt.exe» сияқты қос кеңейтімдерге абай болыңыз; Windows-та файл кеңейтімдерін көрсетуді қосу бұл айланы байқауға көмектеседі.
Дереккөздер
- IETF RFC 3629: UTF-8, a transformation format of ISO 10646 (қараша 2003)
- Unicode Consortium: UTF-8, UTF-16, UTF-32 and BOM FAQ
- Rob Pike: UTF-8 history
- W3Techs: Usage statistics of character encodings for websites
- Microsoft: Introducing extended line endings support in Notepad (8 мамыр 2018)
- Wikipedia: ASCII (қосымша дереккөз)


