آخرین به‌روزرسانی: 21 Jan, 2025

عنوان - تغییر دسته‌ای کدگذاری فایل به UTF-8: تبدیل فایل‌ها به UTF-8 با استفاده از Python، Notepad++ و خط فرمان

تبدیل دسته‌ای کدگذاری فایل به UTF-8 - مقدمه

تبدیل کدگذاری فایل به UTF-8 برای اطمینان از سازگاری و ثبات در پلتفرم‌های مختلف بسیار مهم است. هنگام کار با چندین فایل، تبدیل دستی هر کدام می‌تواند خسته‌کننده باشد. این راهنما به شما نشان می‌دهد چگونه به‌صورت دسته‌ای کدگذاری فایل را به UTF-8 به‌صورت کارآمد با استفاده از ابزارها و روش‌های مختلف تغییر دهید.

چرا فایل‌ها را به UTF-8 تبدیل کنیم؟

UTF-8 یک کدگذاری کاراکتری پرکاربرد است که از تمام کاراکترهای Unicode پشتیبانی می‌کند. این کدگذاری سازگاری با اکثر سیستم‌ها، برنامه‌ها و زبان‌ها را تضمین می‌کند و به‌عنوان گزینه‌ای محبوب برای توسعه وب، برنامه‌نویسی و تبادل داده‌ها انتخاب می‌شود.

ابزارها و روش‌ها برای تبدیل دسته‌ای فایل‌ها به UTF-8

۱. استفاده از Notepad++

Notepad++ یک ویرایشگر متن محبوب است که از تبدیل دسته‌ای کدگذاری فایل پشتیبانی می‌کند. در اینجا نحوه استفاده از آن را می‌بینید:

  1. نصب Notepad++: Notepad++ را از وب‌سایت رسمی آن دانلود و نصب کنید.
  2. باز کردن فایل‌ها: به File > Open بروید و تمام فایل‌هایی که می‌خواهید تبدیل کنید را انتخاب کنید.
  3. تغییر کدگذاری: به Encoding > Convert to UTF-8 بروید.
  4. ذخیره فایل‌ها: تغییرات را با کلیک بر File > Save All ذخیره کنید.

۲. استفاده از اسکریپت‌های Python

اگر با برنامه‌نویسی راحت هستید، Python می‌تواند فرآیند تبدیل دسته‌ای را خودکار کند:

import os

input_folder = 'path/to/your/files'
output_folder = 'path/to/output/files'

for filename in os.listdir(input_folder):
    if filename.endswith('.txt'):  # Adjust for your file type
        input_path = os.path.join(input_folder, filename)
        output_path = os.path.join(output_folder, filename)
        
        with open(input_path, 'r', encoding='ISO-8859-1') as infile:
            content = infile.read()
        with open(output_path, 'w', encoding='UTF-8') as outfile:
            outfile.write(content)

print("Batch conversion to UTF-8 completed.")

ISO-8859-1 را با کدگذاری فایل‌های ورودی خود جایگزین کنید.

۳. استفاده از ابزارهای خط فرمان

برای Linux/Unix:

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

for file in *.txt; do
    iconv -f ISO-8859-1 -t UTF-8 "$file" -o "converted_$file"
done

یک روش مشابه در بخش پرسش‌های متداول ما مورد بحث قرار گرفته است که از دستورات iconv و find استفاده می‌کند. لطفاً پرسش‌پاسخ با عنوان: چگونه می‌توانم کدگذاری فایل‌ها را در یک پوشه ویندوز با استفاده از ابزارها یا دستورات شبیه یونیکس (مانند Cygwin یا GnuWin32) تبدیل کنم؟ را بررسی کنید. در لینوکس، با این حال، نیازی به Cygwin یا GnuWin32 ندارید.

برای Windows:

از PowerShell استفاده کنید:

Get-ChildItem -Path "C:\path\to\files\*.txt" | ForEach-Object {
    $content = Get-Content $_.FullName
    Set-Content -Path "C:\path\to\output\$($_.Name)" -Value $content -Encoding UTF8
}

اگر می‌خواهید کدگذاری فایل‌ها را در یک پوشه ویندوز با استفاده از ابزارها یا دستورات شبیه یونیکس تبدیل کنید، لطفاً به بخش پرسش‌های متداول ما مراجعه کنید.

۴. استفاده از ابزارهای آنلاین

چندین ابزار آنلاین به شما امکان می‌دهند فایل‌ها را بارگذاری و به UTF-8 تبدیل کنید. با این حال، این ابزارها ممکن است برای داده‌های حساس به دلیل نگرانی‌های حریم خصوصی مناسب نباشند.

بهترین شیوه‌ها

  • پشتیبان‌گیری از فایل‌ها: همیشه قبل از انجام عملیات دسته‌ای، نسخه پشتیبان تهیه کنید.
  • تأیید کدگذاری: فایل‌های تبدیل‌شده را دوبار بررسی کنید تا اطمینان حاصل شود فرآیند به‌درستی انجام شده است.
  • استفاده از کنترل نسخه: اگر روی یک پروژه کار می‌کنید، تغییرات خود را به سیستمی مانند Git کامیت کنید.

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

۱. چگونه می‌توانم کدگذاری فایل‌ها را در یک پوشه ویندوز با استفاده از ابزارها یا دستورات شبیه یونیکس (مانند Cygwin یا GnuWin32) تبدیل کنم؟

هنگام تبدیل کدگذاری فایل‌ها (مثلاً از ANSI به UTF-8) برای چندین فایل در یک پوشه، ویرایش دستی با یک ویرایشگر عملی نیست. ابزارهایی مانند Cygwin یا GnuWin32 که ابزارهایی مانند iconv، dos2unix و unix2dos را فراهم می‌کنند، برای این کارها ایده‌آل هستند. این ابزارها امکان اجرای دستورات Unix/Linux را بر روی سیستم‌های ویندوزی فراهم می‌کنند و کارهایی مانند تبدیل دسته‌ای فایل را بسیار آسان می‌سازند.

Cygwin و GnuWin32 چیستند؟

  • Cygwin: یک پلتفرم جامع است که محیطی شبیه یونیکس را بر روی ویندوز فراهم می‌کند. این پلتفرم شامل لایه‌ای سازگار با POSIX است که به برنامه‌ها و دستورات Unix/Linux اجازه می‌دهد بر روی ویندوز اجرا شوند. Cygwin برای کاربرانی که می‌خواهند انواع عملیات Unix/Linux مانند تبدیل کدگذاری فایل، اسکریپت‌نویسی و مدیریت بسته‌ها را انجام دهند، ایده‌آل است.
  • GnuWin32: یک جایگزین سبک وزن است که باینری‌های مستقل ویندوزی برای ابزارهای محبوب Unix/Linux ارائه می‌دهد. بر خلاف Cygwin، GnuWin32 محیطی شبیه یونیکس ایجاد نمی‌کند اما بر ابزارهای خاصی مانند iconv و dos2unix تمرکز دارد. این ابزار برای کارهای ساده بدون نیاز به تجربه کامل یونیکس مناسب است.

چگونه از iconv برای تبدیل کدگذاری استفاده کنیم

  • تبدیل تک‌فایلی:
    برای تبدیل یک فایل از windows-1252 (که اغلب به عنوان ANSI شناخته می‌شود) به UTF-8:

    iconv -f windows-1252 -t utf-8 infile > outfile
    
    • -f windows-1252: منبع کدگذاری را مشخص می‌کند.
    • -t utf-8: هدف کدگذاری را مشخص می‌کند.
    • infile و outfile: مسیرهای ورودی و خروجی فایل‌ها هستند.
  • تبدیل دسته‌ای برای تمام فایل‌های .txt در یک پوشه:
    از دستور find برای یافتن تمام فایل‌های .txt و پردازش آن‌ها استفاده کنید:

    find . -name '*.txt' -exec iconv --verbose -f windows-1252 -t utf-8 -o {} {} \;
    
    • find .: پوشه جاری (.) و زیرپوشه‌ها را جستجو می‌کند.
    • -name '*.txt': فقط فایل‌های .txt را فیلتر می‌کند.
    • -exec: دستور مشخص‌شده (iconv) را برای هر فایل پیدا‌شده اجرا می‌کند.
    • {}: به عنوان جایگزین مسیر فایل عمل می‌کند.
    • \;: انتهای دستور -exec را نشان می‌دهد.

نکات مهم

  • این دستورات فایل‌های اصلی را بازنویسی می‌کنند. در صورت نیاز، از داده‌های خود نسخه پشتیبان تهیه کنید.
  • ابزار مناسب را بر اساس نیازهای خود انتخاب کنید:
    • برای یک محیط کامل شبیه یونیکس و اسکریپت‌نویسی پیشرفته از Cygwin استفاده کنید.
    • برای کارهای سبک و مبتنی بر ابزارهای خاص از GnuWin32 استفاده کنید.

نتیجه‌گیری

تغییر دسته‌ای کدگذاری فایل به UTF-8 نیازی به کار دشوار ندارد. با ابزارهایی مانند Notepad++، Python و ابزارهای خط فرمان می‌توانید فرآیند را ساده‌سازی کنید و زمان ارزشمند صرفه‌جویی کنید. روشی را که بهترین تطابق را با جریان کاری شما دارد انتخاب کنید و از مزایای کدگذاری ثابت فایل‌ها بهره‌مند شوید.

مطالب مرتبط