Əsas məzmuna keç

Fayl formatları

TXT faylı nədir? Sadə mətn, kodlaşdırma və UTF-8

TXT mövcud olan ən sadə sənəd formatıdır: yalnız simvollar və sətir keçidləri. Lakin kodlaşdırmalar, BOM və sətir sonları onu ən çox problem yaradan formatlardan birinə çevirir. Hər birini izah edirik.

Müəllif: Hemen Dönüştür Editör EkibiDərc olunub: 7 dəq oxuma

Üzərində TXT yazılmış fayl nişanı

TXT kompüterin ən sadə sənəd formatıdır: qalın yazı, şrift, səhifə tərtibatı yoxdur, yalnız simvollar və sətir keçidləri var. Bu sadəlik onu son dərəcə daşınan edir. Əlli il əvvəl yazılmış mətn faylını bu gün aça bilərsiniz və bu gün yazdığınız fayl çox güman ki, onilliklər sonra da açılacaq. Amma "sadə mətn" göründüyü qədər sadə deyil. Diakritik hərflərin "é" və ya "?" kimi görünməsi, sətirlərin bir sətrə yığılması, faylın əvvəlindəki görünməz simvol: bunların hamısı TXT faylının içindəki bir gizli detaldan, onun simvol kodlaşdırmasından qaynaqlanır. Bu məqalədə TXT fayllarının necə işlədiyi və bu problemlərin necə həll olunduğu izah edilir.

TXT faylı nədir?

.txt genişlənməli faylda mətn simvollarından başqa heç nə olmur. Başlıq, metaməlumat və format yoxdur; hər bayt mətnin özünə aiddir. Əsas sual budur: hansı bayt hansı simvolu bildirir? Bu uyğunluq simvol kodlaşdırması adlanır və TXT faylı adətən hansı kodlaşdırmadan istifadə etdiyini bildirmir. Onu açan proqram bunu təxmin etməli olur.

Qısa tarixçə: ASCII-dən UTF-8-ə

ASCII ilk dəfə 1963-cü ildə ASA X3.4-1963 kimi dərc olunub. O, 7 bitdən istifadə edir və 128 simvolu təyin edir: ingilis əlifbası, rəqəmlər, durğu işarələri və sətir keçidi kimi idarəetmə simvolları. é, ñ, ö kimi hərflər və ya Azərbaycan əlifbasındakı ə, ı və ş ASCII-yə daxil deyil.

Bu boşluğu doldurmaq üçün 8 bitlik baytın qalan 128 dəyərini müxtəlif dillərə ayıran kod səhifələri yarandı: Qərbi Avropa dilləri üçün Windows-1252 və ISO-8859-1, türk dili üçün Windows-1254 və ISO-8859-9 və daha çoxu. Problem ondadır ki, eyni bayt müxtəlif kod səhifələrində fərqli hərfləri bildirir. Məsələn, FD baytı Windows-1252-də "ý", Windows-1254-də isə "ı" deməkdir. Səhv kod səhifəsini təxmin edən proqram mətni səhv göstərir.

Davamlı həll Unicode oldu: o, bütün yazı sistemlərindəki hər simvola vahid nömrə verir. UTF-8 bu nömrələri baytlara çevirməyin ən geniş yayılmış üsuludur. Rob Pike-ın danışdığına görə, Ken Thompson UTF-8-i təxminən 1992-ci ilin sentyabrında bir gecə Nyu-Cersidəki yeməkxanada kağız süfrə altlığının üzərində tərtib edib. Onun hazırkı tərifi 2003-cü ilin noyabrından olan RFC 3629-dur: UTF-8 U+0000-dan U+10FFFF-ə qədər hər simvolu 1-4 baytla kodlaşdırır və ASCII simvollarını ASCII-dəki eyni tək baytlar kimi yazır.

UTF-8-in nə qədər üstün mövqe tutduğunu veb göstərir: W3Techs-in 15 oktyabr 2026-cı il tarixli məlumatlarına görə, simvol kodlaşdırması məlum olan veb saytların 99,1%-i UTF-8 istifadə edir, ondan sonra 0,8% ilə ISO-8859-1 və 0,2% ilə Windows-1252 gəlir.

TXT faylının içində nə var?

Simvollar və baytlar

"café" sözünü UTF-8 və Windows-1252 kimi saxlasanız, fərqli baytlar alarsınız:

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

UTF-8 faylını Windows-1252 kimi oxuyan proqram C3 və A9 baytlarını iki ayrı simvol, yəni "é" kimi göstərir. Əksinə, Windows-1252 faylını UTF-8 kimi oxuyan proqram E9-u etibarsız sayır və onun yerinə "�" göstərir. Pozulmuş simvollarla bağlı demək olar ki, bütün problemlər bu iki ssenaridən biridir.

BOM (bayt sırası işarəsi)

Bəzi proqramlar UTF-8 faylının əvvəlinə EF BB BF baytlarını yazır. Bu, "bu fayl UTF-8-dir" mənasında imza kimi istifadə olunan U+FEFF simvolunun UTF-8 formasıdır. RFC 3629 qeyd edir ki, bu imza həmişə məhz bu üç bayt kimi görünür. Unicode FAQ-a görə, UTF-8-də BOM tələb olunmur və yalnız imza rolunu oynayır; faylın əvvəlində ASCII simvolları gözləyən protokollarda isə ondan qaçmaq lazımdır. Praktikada BOM bəzi köhnə Windows proqramlarına və Excel-ə UTF-8-i tanımağa kömək edir, lakin Unix qabıq skriptlərini və bəzi proqramların oxuduğu konfiqurasiya fayllarını poza bilər.

UTF-16-da BOM daha da vacibdir, çünki oxuyucuya bayt sırasını bildirir: FF FE little-endian, FE FF isə big-endian UTF-16 deməkdir.

Sətir sonları

Sətrin sonunu bildirən simvol da əməliyyat sistemindən asılıdır:

SistemSətir sonuBaytlar
WindowsCRLF0D 0A
Linux, macOSLF0A
Klassik Mac OS (OS X-dən əvvəl)CR0D

Uzun illər Windows Notepad yalnız CRLF-i başa düşürdü, ona görə də Linux-da yazılmış fayl bir uzun sətir kimi görünürdü. Microsoft 8 may 2018-ci ildə Notepad üçün LF və CR dəstəyini elan etdi və bu dəyişiklik istifadəçilərə Windows 10-un 1809 versiyası ilə çatdı.

TXT harada istifadə olunur?

  • Qeydlər və qaralamalar: format tələb etməyən cəld qeydlər.
  • Proqram təminatı: README faylları, lisenziya mətnləri, mənbə kodu, konfiqurasiya faylları və jurnallar (loglar).
  • Məlumat mübadiləsi: sistemlər arasında ötürülən sadə siyahılar və ixraclar.
  • Uzunmüddətli saxlama: heç bir proqramdan asılı olmadan arxivləşdirilməli olan mətn.
  • Əlçatanlıq və emal: ekran oxuyucuları, axtarış sistemləri və mətn analizi alətləri üçün ən təmiz giriş məlumatı.

Güclü və zəif tərəfləri

Güclü tərəfləri: hər cihaz və əməliyyat sistemi onu açır. Fayllar çox kiçikdir. Proqram versiyalarından asılılıq yoxdur və zədələnmə riski çox azdır. Git kimi versiya nəzarəti sistemləri dəyişiklikləri sətir-sətir göstərə bilir. Makro və ya daxil edilmiş obyekt daşıya bilmədiyi üçün təhlükəsizdir.

Zəif tərəfləri: format, şəkil, cədvəl və keçid saxlaya bilmir. Kodlaşdırma faylda qeyd olunmadığı üçün səhv təxmin edilə bilər. Sətir sonlarındakı fərqlər sistemlər arasında kiçik, lakin narahatedici problemlər yaradır. Başlıq və siyahı kimi quruluş lazımdırsa, Markdown daha yaxşı seçimdir.

TXT-ni hansı proqramlar açır?

Windows-da Notepad, macOS-da TextEdit, Linux-da gedit və oxşar redaktorlar TXT-ni açır, brauzerlər isə mətn fayllarını birbaşa göstərə bilir. Visual Studio Code, Notepad++ və Sublime Text kimi qabaqcıl redaktorlar vəziyyət sətrində kodlaşdırmanı və sətir sonu növünü göstərir və hər ikisini bir kliklə dəyişməyə imkan verir; bu da onları kodlaşdırma problemlərini aşkar etmək üçün ən praktik alətlərə çevirir.

Tez-tez rast gəlinən problemlər və həlləri

Diakritik hərflər "é" və ya "ü" kimi görünür

Fayl UTF-8 kimi saxlanılıb, lakin onu oxuyan proqram Windows-1252 olduğunu fərz edir. Kodlaşdırmanı seçməyə imkan verən redaktorda faylı yenidən UTF-8 kimi açın. CSV və ya mətn faylı Excel-də belə görünürsə, onu BOM-lu UTF-8 kimi saxlamaq adətən problemi həll edir.

Simvollar "?" və ya "�" ilə əvəz olunub

Fayl köhnə kod səhifəsində saxlanılıb, lakin UTF-8 kimi oxunur. Onu redaktorunuzda düzgün kod səhifəsini seçərək açın, sonra UTF-8 kimi saxlayın. Mətn hərfi "?" simvolları ilə saxlanılıbsa, orijinal simvollar itib və mənbəyə qayıtmaq lazımdır.

Bütün mətn bir sətirdə görünür

Köhnə redaktor LF sətir sonlarını başa düşmür. Yenilənmiş Notepad və ya qabaqcıl redaktordan istifadə edin, ya da sətir sonlarını CRLF-ə çevirin.

Faylın əvvəlində görünməz simvol var

Bu, adətən BOM-dur. Skript və ya konfiqurasiya faylı birinci sətirdə xəta verirsə, onu "BOM-suz UTF-8" kimi saxlayın.

TXT fayllarını çevirmək üçün tövsiyələr

Bizim çeviricidə TXT faylları serverimizə yüklənir və 30 dəqiqə ərzində silinir. Kodlaşdırma avtomatik müəyyən edilir: əvvəlcə BOM yoxlanılır (UTF-8, UTF-16 little-endian və big-endian); BOM yoxdursa, faylın etibarlı UTF-8 olub-olmadığı yoxlanılır; etibarlı UTF-8 deyilsə, köhnə türk Windows kod səhifəsi olan Windows-1254 kimi oxunur. Çoxlu NUL baytı olan fayllar mətn deyil, binar fayl sayılır və "bu mətn faylı deyil" mesajı görünür.

  • TXT-dən Word-ə və TXT-dən PDF-ə çevirmədə hər sətir abzasa çevrilir və boş sətirlər saxlanılır. Sətir əvvəlindəki girintilər (kod, şeir və ya nömrəli bəndlər) itməməsi üçün qırılmaz boşluqlara, sətir əvvəlindəki tab simvolları isə dörd boşluğa çevrilir.
  • TXT-dən Markdown-a çevirmə sadə mətni sonradan başlıqlar və siyahılarla zənginləşdirmək istədikdə yaxşı başlanğıcdır.
  • Əks istiqamətdə PDF-dən TXT-yə və Word-dən TXT-yə çevirmə formatı atır, başlıqları və abzasları boş sətirlərlə ayırır. Yaratdığımız TXT faylları diakritik hərflərin Notepad və Excel kimi proqramlarda düzgün görünməsi üçün BOM-lu UTF-8 kimi saxlanılır.

Tez-tez verilən suallar

TXT faylını hansı kodlaşdırmada saxlamalıyam?

Yeni fayllar üçün UTF-8. O, bütün dilləri dəstəkləyir və vebdə demək olar ki, universal olub. Fayl BOM-suz UTF-8 gözləyən proqram tərəfindən oxunacaqsa, BOM əlavə etməyin; Excel kimi proqramlarda açılacaqsa, əlavə edin.

UTF-8 ilə BOM-lu UTF-8 arasında fərq nədir?

Məzmun eynidir; BOM-lu versiya sadəcə EF BB BF baytları ilə başlayır. Bu imza bəzi proqramlara kodlaşdırmanı tanımağa kömək edir, digərlərində isə görünməz ilk simvol kimi üzə çıxa bilər.

TXT ilə RTF arasında fərq nədir?

TXT yalnız simvollardan ibarətdir. RTF isə qalın, kursiv, şriftlər və cədvəllər kimi formatı mətnə yerləşdirilmiş idarəetmə əmrləri ilə daşıyır. Formata ehtiyacınız yoxdursa, TXT daha sadə və daha daşınandır.

TXT faylının kodlaşdırmasını necə öyrənim?

Visual Studio Code və Notepad++ kimi redaktorlar kodlaşdırmanı vəziyyət sətrində göstərir. Notepad-in hazırkı versiyaları da vəziyyət sətrində kodlaşdırmanı və sətir sonu növünü göstərir.

TXT faylında virus ola bilərmi?

Sadə mətn faylı özlüyündə icra olunan kod ehtiva etmir. "sened.txt.exe" kimi ikiqat genişlənmələrə diqqət edin; Windows-da fayl genişlənmələrini görünən etmək bu hiyləni tanımağa kömək edir.

Mənbələr

Əlaqəli çeviricilər

Bütün yazılar