UCONV(1) ICU 78.3 Manual UCONV(1)

uconv - تبدیل کدگذاری نویسه‌ها و ترانویسی با استفاده از ICU

uconv [ -h, -?, --help ] [ -V, --version ] [ -s, --silent ] [ -v, --verbose ] [ -l, --list | -l, --list-code code | --default-code | -L, --list-transliterators ] [ --canon ] [ -x transliteration ] [ --to-callback callback | -c ] [ --from-callback callback | -i ] [ --callback callback ] [ --fallback | --no-fallback ] [ -b, --block-size size ] [ -f, --from-code encoding ] [ -t, --to-code encoding ] [ --add-signature ] [ --remove-signature ] [ -o, --output file ] [ file... ]

دستور uconv هر file داده‌شده (یا در صورت مشخص نشدن file، ورودی استاندارد) را از یک encoding (کدگذاری) به دیگری تبدیل یا بازکدگذاری می‌کند. این تبدیل کدگذاری با استفاده از یونیکد به‌عنوان یک کدگذاری واسط (pivot encoding) انجام می‌شود (به این معنی که داده‌ها ابتدا از کدگذاری اصلی به یونیکد تبدیل می‌شوند و سپس از یونیکد به کدگذاری مقصد تبدیل می‌گردند).

اگر یک encoding مشخص نشود یا برابر با - باشد، از کدگذاری پیش‌فرض استفاده می‌شود. بنابراین، فراخوانی uconv بدون مشخص کردن encoding روشی آسان برای اعتبارسنجی و پاک‌سازی فایل‌های داده جهت استفاده بعدی توسط ابزارهایی است که به داده‌ها با کدگذاری پیش‌فرض نیاز دارند.

هنگام فراخوانی uconv، می‌توان کال‌بک‌هایی را برای مدیریت نویسه‌های نامعتبر در ورودی یا نویسه‌هایی که امکان تبدیل آن‌ها به کدگذاری مقصد وجود ندارد مشخص کرد. برای نمونه، برخی کدگذاری‌ها یک نویسه جایگزین پیش‌فرض ارائه می‌دهند که می‌توان از آن برای نمایش رخداد چنین نویسه‌هایی در ورودی استفاده کرد. کال‌بک‌های دیگر نمایش بصری مفیدی از داده‌های نامعتبر را ارائه می‌دهند.

همچنین uconv می‌تواند transliteration (ترانویسی) مشخص‌شده را روی داده‌های تبدیل‌شده اجرا کند؛ در این حالت، ترانویسی به‌عنوان یک مرحله میانی، پس از تبدیل داده‌ها به یونیکد اتفاق می‌افتد. این transliteration می‌تواند فهرستی از نام‌های ترانویس باشد که با نقطه-ویرگول از هم جدا شده‌اند، یا مجموعه‌ای با هر میزان پیچیدگی دلخواه از قوانین در قالب قوانین ترانویسی ICU باشد.

برای اهداف تبدیل کدگذاری، گزینه‌های uconv با گزینه‌های iconv(1) سازگار هستند که این امر جایگزینی آن را در اسکریپت‌ها آسان می‌کند. با این حال، لزوماً نام‌های کدگذاری استفاده‌شده توسط uconv و ICU همان نام‌های استفاده‌شده توسط iconv(1) نیستند. همچنین، گزینه‌هایی که داده‌های اطلاعاتی ارائه می‌دهند، مانند گزینه -l, --list که توسط برخی نگارش‌های iconv(1) (مانند نگارش گنو) ارائه می‌شود، داده‌ها را در قالبی کمی متفاوت و برای تجزیه آسان‌تر تولید می‌کنند.

چاپ راهنمای استفاده و خروج.
چاپ نسخه uconv و خروج.
نادیده گرفتن پیام‌ها در حین اجرا (حالت خاموش).
نمایش پیام‌های اطلاعاتی اضافی در حین اجرا.
فهرست کردن تمام کدگذاری‌های موجود و خروج.
فهرست کردن تنها کدگذاری code و خروج. اگر code یک کدگذاری معتبر نباشد، با خطا خارج می‌شود.
فهرست کردن تنها نام کدگذاری پیش‌فرض و خروج.
فهرست کردن تمام ترانویس‌های موجود و خروج.
در صورت استفاده با -l, --list یا --default-code، فهرست کدگذاری‌ها در قالبی سازگار با convrtrs.txt(5) تولید می‌شود. در صورت استفاده با -L, --list-transliterators، در هر سطر فقط یک نام ترانویس چاپ می‌شود.
اجرای transliteration (ترانویسی) مشخص‌شده روی داده‌های یونیکدِ تبدیل‌شده، و استفاده از داده‌های ترانویسی‌شده به‌عنوان ورودی برای تبدیل به کدگذاری مقصد.
استفاده از callback برای مدیریت نویسه‌هایی که امکان تبدیل آن‌ها به کدگذاری مقصد وجود ندارد. برای جزئیات مربوط به کال‌بک‌های معتبر به بخش کال‌بک‌ها (CALLBACKS) مراجعه کنید.
حذف نویسه‌های نامعتبر از خروجی. معادل با --to-callback skip.
استفاده از callback برای مدیریت نویسه‌هایی که امکان تبدیل آن‌ها از کدگذاری مبدأ وجود ندارد. برای جزئیات مربوط به کال‌بک‌های معتبر به بخش کال‌بک‌ها (CALLBACKS) مراجعه کنید.
نادیده گرفتن توالی‌های نامعتبر در ورودی. معادل با --from-callback skip.
استفاده از callback برای مدیریت هر دو گروه نویسه‌هایی که از کدگذاری مبدأ قابل تبدیل نیستند و نویسه‌هایی که به کدگذاری مقصد قابل تبدیل نیستند. برای جزئیات مربوط به کال‌بک‌های معتبر به بخش کال‌بک‌ها (CALLBACKS) مراجعه کنید.
استفاده از نگاشت بازگشتی (fallback) هنگام تبدیل از یونیکد به کدگذاری مقصد.
عدم استفاده از نگاشت بازگشتی هنگام تبدیل از یونیکد به کدگذاری مقصد. این حالت پیش‌فرض است.
خواندن ورودی در بلوک‌هایی به اندازه size بایت در هر بار. اندازه بلوک پیش‌فرض 4096 است.
تنظیم کدگذاری اصلی داده‌ها روی encoding.
تبدیل کدگذاری داده‌ها به encoding.
افزودن نویسه امضای یونیکد U+FEFF (BOM) در صورتی که مجموعه نویسه خروجی از آن پشتیبانی کند و خود به خود آن را اضافه نکرده باشد.
حذف نویسه امضای یونیکد U+FEFF (BOM).
نوشتن داده‌های تبدیل‌شده در file.

دستور uconv از تعیین کال‌بک‌ها برای مدیریت داده‌های نامعتبر پشتیبانی می‌کند. کال‌بک‌ها را می‌توان برای هر دو جهت تبدیل تعیین کرد: از کدگذاری مبدأ به یونیکد با گزینه --from-callback، و از یونیکد به کدگذاری مقصد با گزینه --to-callback.

در ادامه فهرستی از نام‌های معتبر callback به همراه توضیح رفتار آن‌ها آورده شده است. فهرست کال‌بک‌هایی که عملاً توسط uconv پشتیبانی می‌شوند، هنگام فراخوانی آن با گزینه -h, --help نمایش داده می‌شود.

نوشتن توالی جایگزین کدگذاری، یا نویسه جایگزینی یونیکد U+FFFD هنگام تبدیل به یونیکد.
نادیده گرفتن داده‌های نامعتبر.
توقف همراه با خطا هنگام برخورد با داده‌های نامعتبر. این کال‌بک پیش‌فرض است.
معادل با escape-icu.
جایگزینی نویسه‌های ناموجود با رشته‌ای به قالب %Uhhhh برای نویسه‌های صفحه 0، و %Uhhhh%Uhhhh برای نویسه‌های صفحه 1 و بالاتر، که در آن hhhh مقدار مبنای ۱۶ (هگزادسیمال) یکی از واحدهای کد UTF-16 نشان‌دهنده آن نویسه است. نویسه‌های صفحه 1 و بالاتر به‌صورت یک جفت واحد کد جانشین (surrogate) UTF-16 نوشته می‌شوند.
جایگزینی نویسه‌های ناموجود با رشته‌ای به قالب \uhhhh برای نویسه‌های صفحه 0، و \uhhhh\uhhhh برای نویسه‌های صفحه 1 و بالاتر، که در آن hhhh مقدار مبنای ۱۶ یکی از واحدهای کد UTF-16 نشان‌دهنده آن نویسه است. نویسه‌های صفحه 1 و بالاتر به‌صورت یک جفت واحد کد جانشین UTF-16 نوشته می‌شوند.
جایگزینی نویسه‌های ناموجود با رشته‌ای به قالب \uhhhh برای نویسه‌های صفحه 0، و \Uhhhhhhhh برای نویسه‌های صفحه 1 و بالاتر، که در آن hhhh و hhhhhhhh مقادیر مبنای ۱۶ نقطه کد یونیکد هستند.
معادل با escape-xml-hex.
جایگزینی نویسه‌های ناموجود با رشته‌ای به قالب &#xhhhh;، که در آن hhhh مقدار مبنای ۱۶ نقطه کد یونیکد است.
جایگزینی نویسه‌های ناموجود با رشته‌ای به قالب &#nnnn;، که در آن nnnn مقدار ده‌دهی نقطه کد یونیکد است.
جایگزینی نویسه‌های ناموجود با رشته‌ای به قالب {U+hhhh}، که در آن hhhh مقدار مبنای ۱۶ نقطه کد یونیکد است. این رشته هگزادسیمال دارای طول متغیر است و می‌تواند از 4 تا 6 رقم داشته باشد. این قالبی است که به‌طور جهانی برای نشان دادن نقطه کد یونیکد در اسناد و متون به کار می‌رود و برای تشخیص آسان این جایگزینی‌ها در خروجی، توسط آکولادها محصور شده است.

تبدیل داده‌ها از یک encoding مشخص به کدگذاری پیش‌فرض پلتفرم:

$ uconv -f encoding

بررسی این که آیا یک file حاوی داده‌های معتبر برای یک encoding مشخص است یا خیر:

$ uconv -f encoding -c file >/dev/null

تبدیل یک file با کدگذاری UTF-8 به یک encoding مشخص و اطمینان از این که متن حاصل برای هر نسخه‌ای از HTML مناسب است:

$ uconv -f utf-8 -t encoding \
--callback escape-xml-dec file

نمایش نام‌های نقاط کد یونیکد در یک فایل UTF:

$ uconv -f utf-8 -x any-name file

چاپ نام یک نقطه کد یونیکد که مقدار آن مشخص است (در این مثال U+30AB):

$ echo '\u30ab' | uconv -x 'hex-any; any-name'; echo
{KATAKANA LETTER KA}{LINE FEED}
$

(نام‌ها در میان آکولادها محصور شده‌اند. همچنین، نام نویسه پایان خط نیز نمایش داده می‌شود.)

نرمال‌سازی داده‌های UTF-8 با استفاده از Unicode NFKC، حذف تمام نویسه‌های کنترلی، و نگاشت کاتاکانا به هیراگانا:

$ uconv -f utf-8 -t utf-8 \
-x '::nfkc; [:Cc:] >; ::katakana-hiragana;'

دستور uconv خطاها را در اولین بایت نامعتبر مشاهده‌شده گزارش می‌دهد. این ممکن است برای کاربران iconv(1) گنو گیج‌کننده باشد، چرا که آن ابزار خطاها را در اولین بایت از یک توالی نامعتبر گزارش می‌کند. برای مجموعه‌های نویسه یا کدگذاری‌های چندبایتی، این بدان معناست که موقعیت خطای گزارش‌شده توسط uconv ممکن است در آفست دیرتری در جریان ورودی نسبت به iconv(1) گنو باشد.

گزارش موقعیت‌های خطا هنگام استفاده از ترانویس ممکن است نادقیق یا ناموجود باشد؛ در این حالت uconv آفست در جریان خروجی را که خطا در آن رخ داده است گزارش می‌دهد.

Jonas Utterstroem
Yves Arrouye

78.3

حق نشر © 2000-2005 متعلق به IBM, Inc. و دیگران است.

iconv(1)

2005-jul-1 ICU MANPAGE