Formaty plików
Co to jest plik TXT? Zwykły tekst, kodowanie i UTF-8
TXT to najprostszy format dokumentu, jaki istnieje: same znaki i podziały wierszy. A jednak kodowanie, BOM i znaki końca wiersza czynią go jednym z najbardziej kłopotliwych. Wyjaśniamy każdy z tych elementów.
Autor: Hemen Dönüştür Editör EkibiOpublikowano: 7 min czytania

TXT to najprostszy format dokumentu, jaki zna komputer: bez pogrubień, bez czcionek, bez układu strony, tylko znaki i podziały wierszy. Ta prostota sprawia, że jest niezwykle przenośny. Plik tekstowy zapisany pięćdziesiąt lat temu otworzysz i dziś, a to, co napiszesz dziś, najpewniej da się otworzyć za kilkadziesiąt lat. Ale „zwykły tekst” nie jest tak prosty, jak się wydaje. Polskie litery zamieniające się w „Ä…” albo „?”, wiersze zlewające się w jeden, niewidoczny znak na początku pliku: wszystko to wynika z jednego ukrytego szczegółu pliku TXT, czyli kodowania znaków. W tym artykule wyjaśniamy, jak działają pliki TXT i jak rozwiązać te problemy.
Czym jest plik TXT?
Plik z rozszerzeniem .txt zawiera wyłącznie znaki tekstu. Nie ma nagłówka, metadanych ani formatowania; każdy bajt należy do samego tekstu. Kluczowe pytanie brzmi: który bajt oznacza który znak? To przyporządkowanie nazywa się kodowaniem znaków, a plik TXT zwykle nie informuje, którego używa. Program, który go otwiera, musi zgadywać.
Krótka historia: od ASCII do UTF-8
ASCII zostało opublikowane po raz pierwszy w 1963 roku jako ASA X3.4-1963. Używa 7 bitów i definiuje 128 znaków: alfabet angielski, cyfry, znaki interpunkcyjne i znaki sterujące, takie jak znak nowego wiersza. Litery takie jak é, ñ, ö czy polskie ą, ł i ż nie należą do ASCII.
Aby wypełnić tę lukę, powstały strony kodowe, które przypisywały pozostałe 128 wartości 8-bitowego bajtu różnym językom: Windows-1252 i ISO-8859-1 dla języków zachodnioeuropejskich, Windows-1250 i ISO-8859-2 dla języków Europy Środkowej, w tym polskiego, i wiele innych. Problem polega na tym, że ten sam bajt oznacza różne litery w różnych stronach kodowych. Bajt B3 to na przykład „ł” w Windows-1250, ale „³” w Windows-1252. Program, który zgadnie złą stronę kodową, wyświetli tekst niepoprawnie.
Trwałym rozwiązaniem okazał się Unicode, który nadaje każdemu znakowi każdego systemu pisma jeden numer. UTF-8 to najpowszechniej stosowany sposób zamiany tych numerów na bajty. Jak opowiada Rob Pike, Ken Thompson zaprojektował UTF-8 na papierowej podkładce w barze w New Jersey pewnego wieczoru około września 1992 roku. Jego obecną definicją jest RFC 3629 z listopada 2003 roku: UTF-8 koduje każdy znak od U+0000 do U+10FFFF na 1 do 4 bajtach, a znaki ASCII zapisuje jako te same pojedyncze bajty co ASCII.
Sieć pokazuje, jak bardzo UTF-8 zdominował świat: według danych W3Techs z 15 października 2026 roku 99,1% stron internetowych o znanym kodowaniu znaków używa UTF-8, a dalej są ISO-8859-1 z 0,8% i Windows-1252 z 0,2%.
Co jest w środku pliku TXT?
Znaki i bajty
Zapisz słowo „café” jako UTF-8 i jako Windows-1252, a dostaniesz różne bajty:
Tekst: c a f é
UTF-8: 63 61 66 C3 A9 (5 bajtów)
Windows-1252: 63 61 66 E9 (4 bajty)
Program, który odczyta plik UTF-8 jako Windows-1252, pokaże C3 i A9 jako dwa osobne znaki, „é”. W drugą stronę program, który odczyta plik Windows-1252 jako UTF-8, uzna E9 za nieprawidłowy bajt i wyświetli zamiast niego „�”. Niemal każdy problem z „krzakami” zamiast liter to jeden z tych dwóch scenariuszy.
BOM (znacznik kolejności bajtów)
Niektóre programy umieszczają na początku pliku UTF-8 bajty EF BB BF. To postać UTF-8 znaku U+FEFF, używana jako sygnatura oznaczająca „ten plik jest w UTF-8”. RFC 3629 zauważa, że ta sygnatura zawsze ma postać tych trzech bajtów. Według FAQ Unicode BOM nie jest w UTF-8 wymagany i służy tylko jako sygnatura, a w protokołach, które oczekują znaków ASCII na początku pliku, należy go unikać. W praktyce BOM pomaga niektórym starszym programom Windows i Excelowi rozpoznać UTF-8, ale może zepsuć skrypty powłoki Unix i pliki konfiguracyjne odczytywane przez niektóre programy.
W UTF-16 BOM jest jeszcze ważniejszy, bo informuje o kolejności bajtów: FF FE oznacza UTF-16 little-endian, a FE FF big-endian.
Znaki końca wiersza
Znak oznaczający koniec wiersza także zależy od systemu operacyjnego:
| System | Koniec wiersza | Bajty |
|---|---|---|
| Windows | CRLF | 0D 0A |
| Linux, macOS | LF | 0A |
| Klasyczny Mac OS (przed OS X) | CR | 0D |
Przez wiele lat Notatnik w Windows rozumiał tylko CRLF, więc plik zapisany w Linuksie wyświetlał się jako jeden długi wiersz. Microsoft ogłosił obsługę LF i CR w Notatniku 8 maja 2018 roku, a zmiana dotarła do użytkowników wraz z Windows 10 w wersji 1809.
Gdzie używa się TXT?
- Notatki i szkice: szybkie zapiski, które nie potrzebują formatowania.
- Oprogramowanie: pliki README, teksty licencji, kod źródłowy, pliki konfiguracyjne i logi.
- Wymiana danych: proste listy i eksporty przekazywane między systemami.
- Przechowywanie długoterminowe: tekst, który trzeba zarchiwizować bez zależności od jakiejkolwiek aplikacji.
- Dostępność i przetwarzanie: najczystsze dane wejściowe dla czytników ekranu, wyszukiwarek i narzędzi do analizy tekstu.
Zalety i wady
Zalety: otwiera go każde urządzenie i każdy system operacyjny. Pliki są maleńkie. Nie ma zależności od wersji programów, a ryzyko uszkodzenia jest bardzo małe. Systemy kontroli wersji, takie jak Git, mogą pokazywać zmiany wiersz po wierszu. Nie może zawierać makr ani osadzonych obiektów, co czyni go bezpiecznym.
Wady: nie może przechowywać formatowania, obrazów, tabel ani linków. Ponieważ kodowanie nie jest zapisane w pliku, można je źle odgadnąć. Różnice w znakach końca wiersza powodują drobne, ale irytujące problemy między systemami. Jeśli potrzebujesz struktury, takiej jak nagłówki i listy, lepszym wyborem jest Markdown.
Jakie programy otwierają TXT?
Notatnik w Windows, TextEdit w macOS oraz gedit i podobne edytory w Linuksie otwierają TXT, a przeglądarki potrafią wyświetlać pliki tekstowe bezpośrednio. Zaawansowane edytory, takie jak Visual Studio Code, Notepad++ i Sublime Text, pokazują kodowanie i rodzaj znaków końca wiersza na pasku stanu i pozwalają zmienić oba jednym kliknięciem, dlatego są najwygodniejszymi narzędziami do diagnozowania problemów z kodowaniem.
Typowe problemy i jak je rozwiązać
Polskie litery wyglądają jak „Ä…” albo „Ĺ‚”
Plik został zapisany w UTF-8, ale program, który go odczytuje, zakłada jednobajtową stronę kodową Windows. Otwórz go ponownie jako UTF-8 w edytorze, który pozwala wybrać kodowanie. Jeśli plik CSV lub tekstowy tak wygląda w Excelu, zwykle pomaga zapisanie go jako UTF-8 z BOM.
Znaki są zastąpione przez „?” lub „�”
Plik został zapisany w starszej stronie kodowej, ale jest odczytywany jako UTF-8. Otwórz go w edytorze z wybraną właściwą stroną kodową, a potem zapisz jako UTF-8. Jeśli tekst został zapisany z dosłownymi znakami „?”, oryginalne znaki przepadły i trzeba wrócić do źródła.
Cały tekst wyświetla się w jednym wierszu
Stary edytor nie rozumie znaków końca wiersza LF. Użyj aktualnego Notatnika lub zaawansowanego edytora albo zamień znaki końca wiersza na CRLF.
Na początku pliku jest niewidoczny znak
Zwykle to BOM. Jeśli skrypt lub plik konfiguracyjny zgłasza błąd w pierwszym wierszu, zapisz go jako „UTF-8 bez BOM”.
Wskazówki dotyczące konwersji plików TXT
W naszym konwerterze pliki TXT są wysyłane na nasz serwer i usuwane w ciągu 30 minut. Kodowanie jest wykrywane automatycznie: najpierw sprawdzany jest BOM (UTF-8, UTF-16 little-endian i big-endian); bez BOM plik jest sprawdzany pod kątem poprawnego UTF-8; jeśli nie jest poprawnym UTF-8, jest odczytywany jako Windows-1254, czyli starsza turecka strona kodowa Windows. Dlatego pliki z polskimi znakami najlepiej przed konwersją zapisać w UTF-8. Pliki zawierające wiele bajtów NUL są traktowane jako binarne, a nie tekstowe, i zobaczysz komunikat, że to nie jest plik tekstowy.
- Przy konwersji TXT do Worda i TXT do PDF każdy wiersz staje się akapitem, a puste wiersze są zachowywane. Wcięcia na początku wiersza (kod, poezja lub numerowane punkty) są zamieniane na twarde spacje, żeby nie zginęły, a tabulatory na początku wiersza stają się czterema spacjami.
- TXT do Markdown to dobry punkt wyjścia, gdy chcesz później wzbogacić zwykły tekst o nagłówki i listy.
- W drugą stronę PDF do TXT i Word do TXT usuwają formatowanie i oddzielają nagłówki oraz akapity pustymi wierszami. Tworzone przez nas pliki TXT są zapisywane jako UTF-8 z BOM, żeby znaki diakrytyczne wyświetlały się poprawnie w programach takich jak Notatnik i Excel.
Najczęściej zadawane pytania
W jakim kodowaniu zapisywać plik TXT?
W UTF-8, jeśli to nowy plik. Obsługuje wszystkie języki i stał się w sieci niemal powszechny. Pomiń BOM, jeśli plik będzie odczytywany przez program oczekujący UTF-8 bez niego; dodaj go, jeśli plik będzie otwierany w programach takich jak Excel.
Czym różni się UTF-8 od UTF-8 z BOM?
Treść jest identyczna; wersja z BOM po prostu zaczyna się od bajtów EF BB BF. Ta sygnatura pomaga niektórym programom wykryć kodowanie, ale w innych może się pojawić jako niewidoczny pierwszy znak.
Czym różni się TXT od RTF?
TXT zawiera tylko znaki. RTF przenosi formatowanie, takie jak pogrubienie, kursywa, czcionki i tabele, za pomocą poleceń sterujących osadzonych w tekście. Jeśli nie potrzebujesz formatowania, TXT jest prostszy i bardziej przenośny.
Jak sprawdzić kodowanie pliku TXT?
Edytory takie jak Visual Studio Code i Notepad++ pokazują kodowanie na pasku stanu. Aktualne wersje Notatnika również pokazują na pasku stanu kodowanie i rodzaj znaków końca wiersza.
Czy plik TXT może zawierać wirusa?
Zwykły plik tekstowy sam w sobie nie zawiera wykonywalnego kodu. Uważaj na podwójne rozszerzenia, takie jak „dokument.txt.exe”; włączenie widoczności rozszerzeń plików w Windows pomaga dostrzec tę sztuczkę.
Źródła
- IETF RFC 3629: UTF-8, a transformation format of ISO 10646 (listopad 2003)
- Unicode Consortium: UTF-8, UTF-16, UTF-32 and BOM FAQ
- Rob Pike: historia UTF-8
- W3Techs: Usage statistics of character encodings for websites
- Microsoft: Introducing extended line endings support in Notepad (8 maja 2018)
- Wikipedia: ASCII (źródło wtórne)


