تبدیل فایل‌های Windows-1256 به UTF-8

یک فایل قدیمی را در مک، لینوکس یا یک ویرایشگر کد باز کرده‌اید و فقط � می‌بینید؟ فایل احتمالاً با Windows-1256 ذخیره شده است. آن را اینجا بکشید تا Mojibuster کدگذاری را تشخیص دهد و فایل را با UTF-8 ذخیره کند.

با متن و این فایل‌ها کار می‌کند:

  • CSV
  • TXT
  • JSON
  • XML
  • SRT
  • VTT
  • TSV
  • MD
  • HTML
  • SQL
  • LOG

مثل خروجی اکسل، نسخه پشتیبان پایگاه داده، زیرنویس و کد وب‌سایت.

اصلاح

  1. فایل را بکشید یا متن را بچسبانید
  2. اصلاح خودکار انجام می‌شود
  3. نتیجه را کپی یا دانلود کنید
یا فایل را اینجا بکشید
  • بدون آپلود. فایل‌ها مستقیم داخل مرورگر شما اصلاح می‌شوند و هرگز از دستگاهتان خارج نمی‌شوند.

  • سرور در اتحادیه اروپا. Mojibuster روی سروری در فنلاند (اتحادیه اروپا) اجرا می‌شود؛ بنابراین مقررات عمومی حفاظت از داده‌ها (GDPR) برقرار است. متن مقررات (EUR-Lex، به انگلیسی)

چه وقت به تبدیل نیاز دارید؟

  • خروجی نرم‌افزارهای حسابداری، انبارداری یا سامانه‌های قدیمی که با Windows-1256 ذخیره شده و باید وارد سیستمی شود که فقط UTF-8 می‌پذیرد.
  • وب‌سایت‌ها، پایگاه‌های داده و انجمن‌های قدیمی و زیرنویس فیلم‌ها که با Windows-1256 ذخیره شده‌اند.
  • فایلی که در Notepad با گزینه «ANSI» ذخیره شده و بعد در ویرایشگر یا برنامه‌ای باز شده که UTF-8 انتظار دارد.

فایل‌های Windows-1256 از کجا می‌آیند؟

Windows-1256 همان کدگذاری «ANSI» ویندوز است وقتی زبان برنامه‌های غیریونیکد (Language for non-Unicode programs) در تنظیمات منطقه‌ای فارسی یا عربی باشد؛ تنظیمی که در ایران و افغانستان بسیار رایج است. هر برنامه‌ای که متن را با کدگذاری پیش‌فرض سیستم ذخیره کند، چنین فایلی می‌سازد:

  • Notepad در نسخه‌های قدیمی ویندوز، که تا حدود سال 2019 به‌طور پیش‌فرض ANSI ذخیره می‌کرد.
  • اکسل هنگام ذخیره با قالب معمولی CSV (Comma delimited).
  • نرم‌افزارهای حسابداری و انبارداری قدیمی و پایگاه‌های داده‌ای که روی cp1256 تنظیم شده‌اند.
  • زیرنویس‌ها، وب‌سایت‌ها و انجمن‌های فارسی دو دهه گذشته.
متن Windows-1256 که با تنظیمات غربی باز شده است

حروف عجیب

ÎíÇÈÇä ÇäÞáÇÈ¡ ÔãÇÑå 12¡ ÊåÑÇä
ÊáÝä: +98 21 1234 5678

پس از تبدیل

خیابان انقلاب، شماره 12، تهران
تلفن: +98 21 1234 5678

حروف پس از خواندن اشتباه چه شکلی دارند؟

هر حرف فارسی در Windows-1256 یک بایت است. اگر برنامه‌ای غربی این بایت را با Windows-1252 بخواند، یک حرف لاتین علامت‌دار نمایش داده می‌شود:

  • ا ← بایت C7 ← Ç
  • ب ← بایت C8 ← È
  • ر ← بایت D1 ← Ñ
  • س ← بایت D3 ← Ó
  • م ← بایت E3 ← ã
  • ک ← بایت 98 ← ˜

به همین دلیل سلام در این حالت به ÓáÇã تبدیل می‌شود. این متن را هم می‌توانید مستقیم در کادر بچسبانید تا Mojibuster آن را به فارسی برگرداند.

«ی» و «ک» عربی در فایل‌های قدیمی

Windows-1256 برای عربی طراحی شده و «ی» فارسی (U+06CC) را ندارد. نرم‌افزارهای قدیمی به جای آن «ي» عربی ذخیره می‌کردند و صفحه‌کلیدهای قدیمی گاهی «ك» عربی را به جای «ک». اثرش را هنوز در جستجو می‌بینید: «علي» با «علی» یکی حساب نمی‌شود.

Mojibuster در این صفحه هنگام خواندن فایل‌های Windows-1256، «ي» و «ك» را به «ی» و «ک» فارسی تبدیل می‌کند، مگر اینکه متن عربی باشد. متنی که خودتان با UTF-8 می‌چسبانید دست نمی‌خورد.

روش تبدیل

  1. فایل را در کادر بالا بکشید و رها کنید.
  2. Mojibuster کدگذاری‌های Windows-1256 و UTF-8 را خودکار تشخیص می‌دهد و در نتیجه نشان می‌دهد فایل با چه کدگذاری‌ای خوانده شده است.
  3. روی دانلود کلیک کنید تا فایل با UTF-8 ذخیره شود.

تبدیل از خط فرمان

برای تبدیل تعداد زیادی فایل در لینوکس یا مک این دستور کافی است:

iconv -f CP1256 -t UTF-8 in.txt > out.txt

و در PowerShell 7 در ویندوز:

Get-Content -Encoding 1256 in.txt | Set-Content -Encoding utf8 out.txt

توجه کنید که این دستورها فرض می‌کنند کدگذاری فایل را می‌دانید. اگر فایل از قبل UTF-8 باشد، حروف عجیب تازه‌ای مثل ط³ظ„ می‌سازند و «ي» عربی را هم تغییر نمی‌دهند. Mojibuster اول فایل را بررسی می‌کند و فقط وقتی آن را تبدیل می‌کند که نتیجه متن فارسی سالم باشد.

چه چیزی قابل بازیابی نیست؟

حروفی که به ? تبدیل شده‌اند قابل بازیابی نیستند، چون اطلاعات هنگام ذخیره از بین رفته است. Mojibuster تعداد آن‌ها را نشان می‌دهد.

همین درباره نویسه‌هایی صدق می‌کند که در Windows-1256 وجود ندارند، مثل ارقام فارسی ۱۲۳، «ۀ» و ایموجی‌ها: با ذخیره به صورت ANSI برای همیشه به ? تبدیل می‌شوند. اگر در یک ویرایشگر جدید � می‌بینید، حروف هنوز در فایل اصلی هستند و قابل تبدیل‌اند.

پرسش‌های متداول

آیا پس از تبدیل می‌توانم فایل را در اکسل باز کنم؟

بله. برای فایل‌های CSV گزینه ذخیره با BOM را فعال بگذارید تا اکسل فایل را بدون حروف عجیب باز کند. جزئیات در درست کردن فایل CSV فارسی در اکسل.

از کجا بفهمم فایل Windows-1256 است؟

اگر متن با حروف لاتین علامت‌دار مثل ÓáÇã نمایش داده شود، یا با � در ویرایشگری که UTF-8 انتظار دارد، احتمالاً Windows-1256 است. Mojibuster پس از خواندن، کدگذاری تشخیص‌داده‌شده را نشان می‌دهد.

تفاوت Windows-1256 و ISO-8859-6 چیست؟

ISO-8859-6 کدگذاری قدیمی‌تر و کم‌کاربردتری برای عربی است و حروف فارسی پ، چ، ژ و گ را ندارد. برای متن فارسی تقریباً همیشه Windows-1256 به کار رفته است.

فایل‌های «ایران سیستم» (DOS) هم تبدیل می‌شوند؟

خیر. کدگذاری ایران سیستم برنامه‌های قدیمی DOS فعلاً پشتیبانی نمی‌شود. Mojibuster فایل‌های Windows-1256، UTF-8 و UTF-16 را می‌خواند.

آیا می‌توان از UTF-8 به Windows-1256 تبدیل کرد؟

فعلاً فایل فقط با UTF-8 ذخیره می‌شود. اگر به Windows-1256 نیاز دارید، فایل را دوباره در اکسل یا ویرایشگر متن ذخیره کنید.

آیا فایل روی سرور آپلود می‌شود؟

خیر. تبدیل کاملاً داخل مرورگر انجام می‌شود.

راهنماهای دیگر