قالبهای فایل
فایل TXT چیست؟ متن ساده، رمزگذاریها و UTF-8
TXT سادهترین فرمت سند است: فقط نویسهها و شکست خط. با این حال رمزگذاری، BOM و پایان خط آن را به یکی از دردسرسازترین فرمتها تبدیل میکنند. در این مقاله همه را توضیح میدهیم.
نویسنده: Hemen Dönüştür Editör Ekibiتاریخ انتشار: 8 دقیقه مطالعه

TXT سادهترین فرمت سندی است که کامپیوتر میشناسد: نه حروف پررنگ دارد، نه قلم، نه صفحهآرایی؛ فقط نویسهها و شکست خط. همین سادگی آن را فوقالعاده قابلحمل میکند. فایل متنیای را که پنجاه سال پیش نوشته شده امروز میتوانید باز کنید و آنچه امروز مینویسید به احتمال زیاد چند دهه بعد هم باز خواهد شد. اما «متن ساده» آنقدرها هم که به نظر میرسد ساده نیست. حروفی که به «Ã©» یا «?» تبدیل میشوند، خطهایی که در یک خط جمع میشوند، نویسهای نامرئی در ابتدای فایل: همهٔ اینها از یک جزئیات پنهان در دل فایل TXT میآیند، یعنی رمزگذاری نویسهها. این مقاله توضیح میدهد فایلهای TXT چگونه کار میکنند و این مشکلات را چطور میشود حل کرد.
فایل TXT چیست؟
فایلی با پسوند .txt چیزی جز نویسههای متنی ندارد. نه سرآیندی در کار است، نه فراداده و نه قالببندی؛ هر بایت به خود متن تعلق دارد. پرسش اصلی این است: کدام بایت نمایانگر کدام نویسه است؟ به این نگاشت رمزگذاری نویسه (character encoding) میگویند و فایل TXT معمولاً نمیگوید از کدام رمزگذاری استفاده کرده است. برنامهای که آن را باز میکند باید حدس بزند.
تاریخچهٔ کوتاه: از ASCII تا UTF-8
ASCII نخستین بار در سال 1963 با نام ASA X3.4-1963 منتشر شد. این استاندارد از 7 بیت استفاده میکند و 128 نویسه تعریف میکند: الفبای انگلیسی، ارقام، نشانههای نگارشی و نویسههای کنترلی مانند خط جدید (line feed). حروفی مثل é، ñ و ö و همچنین هیچیک از حروف فارسی در ASCII وجود ندارند.
برای پر کردن این خلأ، کدپیجها (code page) پدید آمدند که 128 مقدار باقیماندهٔ یک بایت 8 بیتی را به زبانهای مختلف اختصاص میدادند: Windows-1252 و ISO-8859-1 برای زبانهای اروپای غربی، Windows-1254 و ISO-8859-9 برای ترکی و بسیاری دیگر. مشکل این بود که یک بایت در کدپیجهای مختلف معنای حرف متفاوتی داشت. برای نمونه، بایت FD در Windows-1252 حرف «ý» است، ولی در Windows-1254 حرف «ı». برنامهای که کدپیج را اشتباه حدس بزند، متن را نادرست نمایش میدهد.
راهحل ماندگار Unicode بود که به هر نویسه در هر خط و زبانی یک عدد یکتا میدهد. UTF-8 رایجترین روش برای تبدیل این عددها به بایت است. به روایت Rob Pike، کن تامپسون (Ken Thompson) UTF-8 را یک شب در حدود سپتامبر 1992 روی زیرلیوانی کاغذی در یک غذاخوری در نیوجرسی طراحی کرد. تعریف فعلی آن RFC 3629 از نوامبر 2003 است: UTF-8 هر نویسه از U+0000 تا U+10FFFF را با 1 تا 4 بایت رمزگذاری میکند و نویسههای ASCII را با همان تکبایتهای ASCII مینویسد.
وب نشان میدهد UTF-8 تا چه حد غالب شده است: بر اساس دادههای W3Techs در 15 اکتبر 2026، 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 (نشانهٔ ترتیب بایت)
برخی برنامهها بایتهای EF BB BF را در ابتدای فایل UTF-8 میگذارند. این شکل UTF-8 نویسهٔ U+FEFF است که بهعنوان امضایی به معنای «این فایل UTF-8 است» به کار میرود. RFC 3629 یادآوری میکند که این امضا همیشه به شکل همین سه بایت ظاهر میشود. طبق پرسشهای متداول Unicode، در UTF-8 به BOM نیازی نیست و فقط نقش امضا را دارد، و در پروتکلهایی که در ابتدای فایل انتظار نویسههای ASCII را دارند باید از آن پرهیز کرد. در عمل، BOM به برخی برنامههای قدیمیتر ویندوز و Excel کمک میکند UTF-8 را تشخیص دهند، اما میتواند اسکریپتهای شل یونیکس و فایلهای پیکربندیای را که برخی نرمافزارها میخوانند خراب کند.
در UTF-16 اهمیت BOM حتی بیشتر است، چون ترتیب بایتها را به خواننده میگوید: FF FE یعنی UTF-16 با ترتیب little-endian و FE FF یعنی big-endian.
پایان خط
نویسهای که پایان یک خط را نشان میدهد نیز به سیستمعامل بستگی دارد:
| سیستم | پایان خط | بایتها |
|---|---|---|
| Windows | CRLF | 0D 0A |
| Linux، macOS | LF | 0A |
| Mac OS کلاسیک (پیش از OS X) | CR | 0D |
سالها Notepad ویندوز فقط CRLF را میفهمید و به همین دلیل فایلی که در Linux نوشته شده بود به شکل یک خط طولانی نمایش داده میشد. Microsoft در 8 مه 2018 پشتیبانی Notepad از LF و CR را اعلام کرد و این تغییر با Windows 10 نسخهٔ 1809 به دست کاربران رسید.
TXT کجا به کار میرود؟
- یادداشت و پیشنویس: یادداشتهای سریعی که به قالببندی نیاز ندارند.
- نرمافزار: فایلهای README، متن مجوزها، کد منبع، فایلهای پیکربندی و لاگها.
- تبادل داده: فهرستهای ساده و خروجیهایی که بین سیستمها جابهجا میشوند.
- نگهداری بلندمدت: متنی که باید بدون وابستگی به هیچ برنامهای بایگانی شود.
- دسترسپذیری و پردازش: تمیزترین ورودی برای صفحهخوانها، موتورهای جستوجو و ابزارهای تحلیل متن.
نقاط قوت و ضعف
نقاط قوت: هر دستگاه و سیستمعاملی آن را باز میکند. فایلها بسیار کمحجماند. به نسخهٔ هیچ برنامهای وابسته نیست و خطر خراب شدنش بسیار کم است. سیستمهای کنترل نسخه مانند Git میتوانند تغییرات را خط به خط نشان دهند. نمیتواند ماکرو یا شیء جاسازیشده داشته باشد و همین آن را امن میکند.
نقاط ضعف: نمیتواند قالببندی، تصویر، جدول یا پیوند را در خود نگه دارد. چون رمزگذاری در فایل ثبت نمیشود، ممکن است اشتباه حدس زده شود. تفاوت پایان خطها در سیستمهای مختلف مشکلات کوچک ولی آزاردهندهای ایجاد میکند. اگر به ساختاری مانند عنوان و فهرست نیاز دارید، Markdown انتخاب بهتری است.
چه برنامههایی TXT را باز میکنند؟
Notepad در ویندوز، TextEdit در macOS و gedit و ویرایشگرهای مشابه در Linux همگی TXT را باز میکنند و مرورگرها هم میتوانند فایلهای متنی را مستقیم نمایش دهند. ویرایشگرهای پیشرفتهای مانند Visual Studio Code، Notepad++ و Sublime Text رمزگذاری و نوع پایان خط را در نوار وضعیت نشان میدهند و اجازه میدهند هر دو را با یک کلیک تغییر دهید؛ به همین دلیل کاربردیترین ابزار برای عیبیابی مشکلات رمزگذاریاند.
مشکلات رایج و راهحل آنها
حروف دارای علامت به شکل «Ã©» یا «Ã¼» دیده میشوند
فایل با UTF-8 ذخیره شده، اما برنامهای که آن را میخواند Windows-1252 فرض میکند. فایل را در ویرایشگری که امکان انتخاب رمزگذاری دارد دوباره با UTF-8 باز کنید. اگر یک فایل CSV یا متنی در Excel اینطور دیده میشود، ذخیرهٔ آن به صورت UTF-8 همراه با BOM معمولاً مشکل را حل میکند.
نویسهها با «?» یا «�» جایگزین شدهاند
فایل با یک کدپیج قدیمی ذخیره شده ولی بهعنوان UTF-8 خوانده میشود. آن را در ویرایشگر با انتخاب کدپیج درست باز کنید و سپس با UTF-8 ذخیره کنید. اگر متن با خود نویسهٔ «?» ذخیره شده باشد، حروف اصلی از بین رفتهاند و باید به منبع اصلی برگردید.
همهٔ متن در یک خط نمایش داده میشود
یک ویرایشگر قدیمی پایان خط LF را نمیفهمد. از Notepad بهروز یا یک ویرایشگر پیشرفته استفاده کنید یا پایان خطها را به CRLF تبدیل کنید.
در ابتدای فایل یک نویسهٔ نامرئی هست
معمولاً این همان BOM است. اگر یک اسکریپت یا فایل پیکربندی در خط اول خطا میدهد، آن را با گزینهٔ «UTF-8 without BOM» (بدون BOM) ذخیره کنید.
نکتههایی برای تبدیل فایلهای TXT
در مبدل ما، فایلهای TXT روی سرور ما آپلود میشوند و ظرف 30 دقیقه حذف میشوند. رمزگذاری بهطور خودکار تشخیص داده میشود: ابتدا BOM بررسی میشود (UTF-8 و UTF-16 با ترتیب little-endian و big-endian)؛ اگر BOM نباشد، بررسی میشود که فایل UTF-8 معتبر است یا نه؛ اگر UTF-8 معتبر نباشد، با Windows-1254، کدپیج قدیمی ترکی ویندوز، خوانده میشود. فایلهایی که بایتهای NUL زیادی دارند بهجای متن، دودویی (باینری) شناخته میشوند و پیام «این فایل متنی نیست» را میبینید.
- با تبدیل TXT به Word و تبدیل TXT به PDF، هر خط به یک پاراگراف تبدیل میشود و خطهای خالی حفظ میشوند. تورفتگی ابتدای خط (در کد، شعر یا بندهای شمارهدار) به فاصلههای نشکن تبدیل میشود تا از بین نرود و تبهای ابتدای خط به چهار فاصله تبدیل میشوند.
- تبدیل TXT به Markdown نقطهٔ شروع خوبی است اگر میخواهید بعداً متن ساده را با عنوان و فهرست غنی کنید.
- در جهت عکس، تبدیل PDF به TXT و تبدیل Word به TXT قالببندی را کنار میگذارند و عنوانها و پاراگرافها را با خط خالی از هم جدا میکنند. فایلهای TXT که ما تولید میکنیم به صورت UTF-8 همراه با BOM ذخیره میشوند تا حروف دارای علامت و حروف غیرلاتین در برنامههایی مانند Notepad و Excel درست نمایش داده شوند.
پرسشهای متداول
فایل TXT را با چه رمزگذاریای ذخیره کنم؟
برای فایلهای جدید UTF-8. از همهٔ زبانها پشتیبانی میکند و در وب تقریباً همهگیر شده است. اگر فایل را نرمافزاری میخواند که UTF-8 بدون BOM انتظار دارد، BOM نگذارید؛ اگر قرار است در برنامههایی مانند Excel باز شود، آن را اضافه کنید.
تفاوت UTF-8 و UTF-8 با BOM چیست؟
محتوا یکسان است؛ نسخهٔ دارای BOM فقط با بایتهای EF BB BF شروع میشود. این امضا به برخی برنامهها در تشخیص رمزگذاری کمک میکند، اما در برخی دیگر ممکن است به شکل یک نویسهٔ نامرئی در ابتدای فایل ظاهر شود.
تفاوت TXT و RTF چیست؟
TXT فقط نویسه دارد. RTF قالببندیهایی مانند پررنگ، کج، قلم و جدول را از طریق فرمانهای کنترلی جاسازیشده در متن با خود حمل میکند. اگر به قالببندی نیاز ندارید، TXT سادهتر و قابلحملتر است.
چطور رمزگذاری یک فایل TXT را بفهمم؟
ویرایشگرهایی مانند Visual Studio Code و Notepad++ رمزگذاری را در نوار وضعیت نشان میدهند. نسخههای فعلی Notepad هم رمزگذاری و نوع پایان خط را در نوار وضعیت نمایش میدهند.
آیا فایل TXT میتواند ویروس داشته باشد؟
یک فایل متن ساده بهخودیخود کد اجرایی ندارد. مراقب پسوندهای دوگانه مانند «document.txt.exe» باشید؛ نمایان کردن پسوند فایلها در ویندوز کمک میکند این ترفند را تشخیص دهید.
منابع
- IETF RFC 3629: UTF-8، یک فرمت تبدیل برای ISO 10646 (نوامبر 2003)
- Unicode Consortium: پرسشهای متداول UTF-8، UTF-16، UTF-32 و BOM
- Rob Pike: تاریخچهٔ UTF-8
- W3Techs: آمار استفاده از رمزگذاریهای نویسه در وبسایتها
- Microsoft: معرفی پشتیبانی گسترده از پایان خط در Notepad (8 مه 2018)
- Wikipedia: ASCII (منبع ثانویه)


