Файл форматтары
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 жана башка көптөгөн барактар. Көйгөй мында: бир эле байт ар башка код барактарында ар башка тамганы билдирет. Мисалы, 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 колдонот, андан кийин 0,8% менен ISO-8859-1 жана 0,2% менен Windows-1252 турат.
TXT файлдын ичинде эмне бар?
Белгилер жана байттар
«café» сөзүн UTF-8 жана Windows-1252 катары сактасаңыз, ар башка байттар чыгат:
Текст: c a f é
UTF-8: 63 61 66 C3 A9 (5 байт)
Windows-1252: 63 61 66 E9 (4 байт)
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 shell скрипттерин жана айрым программалар окуган конфигурация файлдарын бузушу мүмкүн.
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 Notepad CRLF'ти гана түшүнгөн, ошондуктан Linux'та жазылган файл бир узун сап болуп көрүнгөн. Microsoft 2018-жылдын 8-майында Notepad үчүн LF жана CR колдоосун жарыялаган, ал эми бул өзгөрүү колдонуучуларга Windows 10дун 1809 версиясы менен жеткен.
TXT кайда колдонулат?
- Эскертмелер жана долбоорлор: форматтоону талап кылбаган тез жазуулар.
- Программалык камсыздоо: README файлдары, лицензия тексттери, булак коду, конфигурация файлдары жана журналдар.
- Маалымат алмашуу: системалар ортосунда берилген жөнөкөй тизмелер жана экспорттор.
- Узак мөөнөттүү сактоо: эч бир программага көз каранды болбой архивделиши керек болгон текст.
- Жеткиликтүүлүк жана иштетүү: экран окуучулары, издөө системалары жана текст талдоо куралдары үчүн эң таза киргизүү.
Күчтүү жана алсыз жактары
Күчтүү жактары: аны ар бир түзмөк жана операциялык система ачат. Файлдар абдан кичинекей. Программа версияларына көз карандылык жок жана бузулуу коркунучу өтө аз. Git сыяктуу версияларды башкаруу системалары өзгөрүүлөрдү сап боюнча көрсөтө алат. Ал макросторду же камтылган объекттерди камтый албайт, бул аны коопсуз кылат.
Алсыз жактары: ал форматтоону, сүрөттөрдү, таблицаларды же шилтемелерди сактай албайт. Коддоо файлда жазылбагандыктан, ал туура эмес божомолдонушу мүмкүн. Сап аяктарынын айырмасы системалар ортосунда майда, бирок кыжырданткан көйгөйлөрдү жаратат. Аталыштар жана тизмелер сыяктуу түзүлүш керек болсо, Markdown жакшыраак тандоо.
TXT'ни кайсы программалар ачат?
Windows'тогу Notepad, 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 сап аяктарын түшүнбөйт. Жаңыртылган Notepad'ды же өнүккөн редакторду колдонуңуз, же сап аяктарын CRLF'ке өзгөртүңүз.
Файлдын башында көзгө көрүнбөгөн белги бар
Бул көбүнчө BOM. Скрипт же конфигурация файлы биринчи сабында ката берсе, аны «BOM'суз UTF-8» катары сактаңыз.
TXT файлдарды конвертациялоо боюнча кеңештер
Биздин конвертерде TXT файлдары биздин серверге жүктөлүп, 30 мүнөттүн ичинде өчүрүлөт. Коддоо автоматтык түрдө аныкталат: адегенде BOM текшерилет (UTF-8, UTF-16 little- жана big-endian); BOM жок болсо, файл жарактуу UTF-8 экени текшерилет; жарактуу UTF-8 болбосо, ал түрк тили үчүн эски Windows код барагы болгон Windows-1254 катары окулат. Көп NUL байттарын камтыган файлдар текст эмес, бинардык файл катары каралат жана сиз «бул текст файлы эмес» деген билдирүүнү аласыз.
- TXT'ден Word'го жана TXT'ден PDF'ке конвертациялоодо ар бир сап абзацка айланат жана бош саптар сакталат. Саптын башындагы чегинүүлөр (код, ыр же номерленген пункттар) жоголбошу үчүн үзүлбөс боштуктарга айландырылат, ал эми саптын башындагы табуляциялар төрт боштук болот.
- TXT'ден Markdown'го конвертациялоо жөнөкөй текстти кийин аталыштар жана тизмелер менен байытууну кааласаңыз, жакшы башталгыч чекит.
- Тескери багытта PDF'тен TXT'ге жана Word'дон TXT'ге конвертациялоо форматтоону алып салып, аталыштарды жана абзацтарды бош саптар менен бөлөт. Биз түзгөн TXT файлдары Notepad жана 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++ сыяктуу редакторлор коддоону абал тилкесинде көрсөтөт. Notepad'дын учурдагы версиялары да абал тилкесинде коддоону жана сап аягынын түрүн көрсөтөт.
TXT файлында вирус болушу мүмкүнбү?
Жөнөкөй текст файлы өзүнөн өзү аткарылуучу кодду камтыбайт. «document.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 (экинчилик булак)


