Asosiy mazmunga oʻtish

Fayl formatlari

TXT fayl nima? Oddiy matn, kodlashlar va UTF-8

TXT eng oddiy hujjat formati: unda faqat belgilar va qator uzilishlari bor. Shunga qaramay kodlashlar, BOM va qator oxirlari uni eng koʻp muammo tugʻdiradigan formatlardan biriga aylantiradi. Har birini tushuntiramiz.

Muallif: Hemen Dönüştür Editör EkibiEʼlon qilingan: 7 daqiqa oʻqish

TXT yozuvli fayl nishoni

TXT kompyuterdagi eng oddiy hujjat formatidir: unda qalin matn ham, shriftlar ham, sahifa maketi ham yoʻq, faqat belgilar va qator uzilishlari bor. Aynan shu soddalik uni nihoyatda koʻchma qiladi. Ellik yil oldin yozilgan matnli faylni bugun ochishingiz mumkin, bugun yozganingiz esa, katta ehtimol bilan, oʻn yillardan keyin ham ochiladi. Ammo "oddiy matn" koʻringanidek oddiy emas. Maxsus harflarning "é" yoki "?" ga aylanishi, qatorlarning bittaga qoʻshilib ketishi, fayl boshidagi koʻrinmas belgi: bularning barchasi TXT fayl ichidagi bitta yashirin tafsilotdan, uning belgilar kodlashidan kelib chiqadi. Bu maqolada TXT fayllar qanday ishlashi va bu muammolarni qanday hal qilish tushuntiriladi.

TXT fayl nima?

.txt kengaytmali faylda matn belgilaridan boshqa hech narsa yoʻq. Unda sarlavha ham, metamaʼlumot ham, formatlash ham yoʻq; har bir bayt matnning oʻziga tegishli. Asosiy savol shuki: qaysi bayt qaysi belgini bildiradi? Bu moslik belgilar kodlashi deb ataladi va TXT fayl odatda qaysi kodlashdan foydalanishini aytmaydi. Uni ochadigan dastur taxmin qilishga majbur.

Qisqacha tarix: ASCII dan UTF-8 gacha

ASCII birinchi marta 1963 yilda ASA X3.4-1963 sifatida eʼlon qilingan. U 7 bitdan foydalanadi va 128 ta belgini belgilaydi: ingliz alifbosi, raqamlar, tinish belgilari va qator uzilishi kabi boshqaruv belgilari. é, ñ, ö kabi harflar yoki kirill harflari ASCII ga kirmaydi.

Bu boʻshliqni toʻldirish uchun 8 bitli baytning qolgan 128 qiymatini turli tillarga ajratadigan kod sahifalari paydo boʻldi: Gʻarbiy Yevropa tillari uchun Windows-1252 va ISO-8859-1, turk tili uchun Windows-1254 va ISO-8859-9 va boshqa koʻplab sahifalar. Muammo shundaki, bir xil bayt turli kod sahifalarida turli harflarni bildiradi. Masalan, FD bayti Windows-1252 da "ý", Windows-1254 da esa "ı" boʻladi. Notoʻgʻri kod sahifasini taxmin qilgan dastur matnni xato koʻrsatadi.

Barqaror yechim Unicode boʻldi: u har bir yozuv tizimidagi har bir belgiga yagona raqam beradi. UTF-8 bu raqamlarni baytlarga aylantirishning eng keng tarqalgan usulidir. Rob Pike hikoya qilishicha, Ken Thompson UTF-8 ni taxminan 1992 yil sentabrida bir kechada Nyu-Jersidagi kafeda dasturxon qogʻozi ustida loyihalagan. Uning amaldagi taʼrifi 2003 yil noyabridagi RFC 3629: UTF-8 U+0000 dan U+10FFFF gacha boʻlgan har bir belgini 1 dan 4 baytgacha kodlaydi va ASCII belgilarni ASCII dagi kabi bir xil yagona baytlar bilan yozadi.

UTF-8 qanchalik ustun boʻlib qolganini veb koʻrsatib turibdi: W3Techs ning 2026 yil 15 oktabrdagi maʼlumotlariga koʻra, belgilar kodlashi maʼlum boʻlgan veb-saytlarning 99,1% i UTF-8 dan foydalanadi, undan keyin 0,8% bilan ISO-8859-1 va 0,2% bilan Windows-1252 keladi.

TXT fayl ichida nima bor?

Belgilar va baytlar

"café" soʻzini UTF-8 va Windows-1252 da saqlasangiz, turli baytlar hosil boʻladi:

Matn:           c   a   f   é
UTF-8:          63  61  66  C3 A9   (5 bayt)
Windows-1252:   63  61  66  E9      (4 bayt)

UTF-8 faylni Windows-1252 deb oʻqiydigan dastur C3 va A9 ni ikkita alohida belgi, "é" sifatida koʻrsatadi. Teskari holatda esa Windows-1252 faylni UTF-8 deb oʻqiydigan dastur E9 ni yaroqsiz deb hisoblaydi va oʻrniga "�" koʻrsatadi. Buzilgan belgilar muammolarining deyarli barchasi shu ikki ssenariydan biridir.

BOM (bayt tartibi belgisi)

Baʼzi dasturlar UTF-8 fayl boshiga EF BB BF baytlarini qoʻyadi. Bu U+FEFF belgisining UTF-8 dagi koʻrinishi boʻlib, "bu fayl UTF-8" degan imzo sifatida ishlatiladi. RFC 3629 bu imzo har doim shu uch bayt koʻrinishida boʻlishini qayd etadi. Unicode FAQ ga koʻra, UTF-8 da BOM majburiy emas va faqat imzo vazifasini bajaradi, fayl boshida ASCII belgilarni kutadigan protokollarda esa undan qochish kerak. Amaliyotda BOM baʼzi eski Windows dasturlari va Excel ga UTF-8 ni tanishga yordam beradi, biroq Unix shell skriptlarini va baʼzi dasturlar oʻqiydigan konfiguratsiya fayllarini buzishi mumkin.

UTF-16 da BOM yanada muhimroq, chunki u oʻquvchiga bayt tartibini bildiradi: FF FE little-endian, FE FF esa big-endian UTF-16 ni anglatadi.

Qator oxirlari

Qator oxirini bildiruvchi belgi ham operatsion tizimga bogʻliq:

TizimQator oxiriBaytlar
WindowsCRLF0D 0A
Linux, macOSLF0A
Klassik Mac OS (OS X dan oldin)CR0D

Koʻp yillar davomida Windows Bloknoti faqat CRLF ni tushunardi, shuning uchun Linux da yozilgan fayl bitta uzun qator boʻlib koʻrinardi. Microsoft 2018 yil 8 mayda Bloknot uchun LF va CR qoʻllab-quvvatlashini eʼlon qildi va bu oʻzgarish foydalanuvchilarga Windows 10 ning 1809 versiyasi bilan yetib keldi.

TXT qayerda ishlatiladi?

  • Qaydlar va qoralamalar: formatlash talab qilmaydigan tezkor qaydlar.
  • Dasturiy taʼminot: README fayllar, litsenziya matnlari, manba kodi, konfiguratsiya fayllari va jurnallar (loglar).
  • Maʼlumot almashinuvi: tizimlar oʻrtasida uzatiladigan oddiy roʻyxatlar va eksportlar.
  • Uzoq muddatli saqlash: hech qanday dasturga bogʻlanmasdan arxivlanishi kerak boʻlgan matn.
  • Qulaylik va qayta ishlash: ekran oʻquvchilari, qidiruv tizimlari va matn tahlili vositalari uchun eng toza kirish maʼlumoti.

Kuchli va zaif tomonlari

Kuchli tomonlari: uni har bir qurilma va operatsion tizim ochadi. Fayllar juda kichik. Dastur versiyalariga bogʻliqlik yoʻq, buzilish xavfi juda past. Git kabi versiyalarni boshqarish tizimlari oʻzgarishlarni qatorma-qator koʻrsata oladi. U makros yoki joylangan obyekt olib yura olmaydi, bu esa uni xavfsiz qiladi.

Zaif tomonlari: u formatlash, rasm, jadval yoki havolalarni saqlay olmaydi. Kodlash faylda qayd etilmagani uchun notoʻgʻri taxmin qilinishi mumkin. Qator oxirlaridagi farqlar tizimlar oʻrtasida kichik, lekin zerikarli muammolarni keltirib chiqaradi. Agar sarlavhalar va roʻyxatlar kabi tuzilma kerak boʻlsa, Markdown yaxshiroq tanlov.

TXT ni qaysi dasturlar ochadi?

Windows dagi Bloknot, macOS dagi TextEdit, Linux dagi gedit va shunga oʻxshash muharrirlar TXT ni ochadi, brauzerlar esa matnli fayllarni toʻgʻridan-toʻgʻri koʻrsata oladi. Visual Studio Code, Notepad++ va Sublime Text kabi kengaytirilgan muharrirlar holat qatorida kodlash va qator oxiri turini koʻrsatadi hamda ikkalasini bir bosish bilan oʻzgartirish imkonini beradi, shuning uchun ular kodlash muammolarini aniqlashning eng qulay vositalaridir.

Keng tarqalgan muammolar va ularni hal qilish

Maxsus belgilar "é" yoki "ü" boʻlib koʻrinadi

Fayl UTF-8 da saqlangan, ammo uni oʻqiyotgan dastur Windows-1252 deb hisoblayapti. Faylni kodlashni tanlash imkonini beradigan muharrirda UTF-8 sifatida qayta oching. Agar CSV yoki matnli fayl Excel da shunday koʻrinsa, uni BOM bilan UTF-8 sifatida saqlash odatda muammoni hal qiladi.

Belgilar "?" yoki "�" bilan almashtirilgan

Fayl eski kod sahifasida saqlangan, lekin UTF-8 deb oʻqilmoqda. Uni muharriringizda toʻgʻri kod sahifasini tanlab oching, keyin UTF-8 sifatida saqlang. Agar matn haqiqiy "?" belgilari bilan saqlangan boʻlsa, asl belgilar yoʻqolgan va manbaga qaytish kerak.

Butun matn bitta qatorda koʻrinadi

Eski muharrir LF qator oxirlarini tushunmaydi. Yangilangan Bloknot yoki kengaytirilgan muharrirdan foydalaning yoki qator oxirlarini CRLF ga aylantiring.

Fayl boshida koʻrinmas belgi bor

Bu odatda BOM. Agar skript yoki konfiguratsiya fayli birinchi qatorda xato bersa, uni "BOM siz UTF-8" sifatida saqlang.

TXT fayllarni konvertatsiya qilish boʻyicha maslahatlar

Bizning konvertorimizda TXT fayllar serverimizga yuklanadi va 30 daqiqa ichida oʻchiriladi. Kodlash avtomatik aniqlanadi: avval BOM tekshiriladi (UTF-8, UTF-16 little- va big-endian); BOM boʻlmasa, fayl yaroqli UTF-8 ekani tekshiriladi; agar yaroqli UTF-8 boʻlmasa, u eski turkcha Windows kod sahifasi Windows-1254 sifatida oʻqiladi. Koʻplab NUL baytlarni oʻz ichiga olgan fayllar matn emas, ikkilik fayl deb hisoblanadi va "bu matnli fayl emas" xabarini olasiz.

  • TXT dan Word ga va TXT dan PDF ga konvertatsiyada har bir qator xatboshiga aylanadi va boʻsh qatorlar saqlanadi. Qator boshidagi chekinishlar (kod, sheʼr yoki raqamlangan bandlar) yoʻqolmasligi uchun uzilmaydigan boʻshliqlarga aylantiriladi, qator boshidagi tabulyatsiyalar esa toʻrtta boʻshliqqa aylanadi.
  • TXT dan Markdown ga konvertatsiya oddiy matnni keyinchalik sarlavhalar va roʻyxatlar bilan boyitmoqchi boʻlsangiz, yaxshi boshlangʻich nuqta.
  • Teskari yoʻnalishda PDF dan TXT ga va Word dan TXT ga konvertatsiya formatlashni tashlab yuboradi va sarlavhalar hamda xatboshilarni boʻsh qatorlar bilan ajratadi. Biz yaratadigan TXT fayllar Bloknot va Excel kabi dasturlarda maxsus belgilar toʻgʻri koʻrinishi uchun BOM bilan UTF-8 da saqlanadi.

Koʻp beriladigan savollar

TXT faylni qaysi kodlashda saqlash kerak?

Yangi fayllar uchun UTF-8 da. U barcha tillarni qoʻllab-quvvatlaydi va vebda deyarli umumiy standartga aylangan. Agar faylni BOM siz UTF-8 kutadigan dastur oʻqisa, BOM qoʻshmang; agar fayl Excel kabi dasturlarda ochilsa, uni qoʻshing.

UTF-8 va BOM li UTF-8 oʻrtasida qanday farq bor?

Mazmun bir xil; BOM li versiya shunchaki EF BB BF baytlari bilan boshlanadi. Bu imzo baʼzi dasturlarga kodlashni aniqlashga yordam beradi, boshqalarida esa koʻrinmas birinchi belgi sifatida paydo boʻlishi mumkin.

TXT va RTF oʻrtasida qanday farq bor?

TXT faqat belgilardan iborat. RTF esa matnga joylangan boshqaruv buyruqlari orqali qalin, kursiv, shriftlar va jadvallar kabi formatlashni olib yuradi. Agar formatlash kerak boʻlmasa, TXT soddaroq va koʻchmaroq.

TXT faylning kodlashini qanday bilish mumkin?

Visual Studio Code va Notepad++ kabi muharrirlar kodlashni holat qatorida koʻrsatadi. Bloknotning amaldagi versiyalari ham holat qatorida kodlash va qator oxiri turini koʻrsatadi.

TXT faylda virus boʻlishi mumkinmi?

Oddiy matnli faylning oʻzida bajariladigan kod boʻlmaydi. "hujjat.txt.exe" kabi qoʻsh kengaytmalardan ehtiyot boʻling; Windows da fayl kengaytmalarini koʻrinadigan qilish bu hiylani payqashga yordam beradi.

Manbalar

Tegishli konvertorlar

Barcha maqolalar