utf8trans(1) docbook2X utf8trans(1)

utf8trans - نویسه‌گردانی نویسه‌های UTF-8 بر اساس یک جدول


utf8trans
charmap [file]...

دستور utf8trans نویسه‌ها را در فایل‌های مشخص‌شده (یا در صورت مشخص نشدن، ورودی استاندارد) نویسه‌گردانی کرده و خروجی را در خروجی استاندارد می‌نویسد. تمامی ورودی‌ها و خروجی‌ها با کدگذاری UTF-8 هستند.

این برنامه معمولاً برای تبدیل نویسه‌ها در فایل‌های متنی یونیکد به برخی توالی‌های گریز نشانه‌گذاری یا نویسه‌گردانی‌های ASCII استفاده می‌شود. (این ابزار برای تبدیل عمومی مجموعه‌های نویسه در نظر گرفته نشده است.) این برنامه قابلیتی مشابه نگاشت‌های نویسه (character maps) در XSLT 2.0 (XML Stylesheet Language – Transformations, version 2.0) ارائه می‌دهد.

تغییر مستقیم و درجا (in-place) فایل‌های داده‌شده با خروجی نویسه‌گردانی‌شده آن‌ها، به‌جای ارسال خروجی به خروجی استاندارد.

این گزینه برای نویسه‌گردانی کارآمد چندین فایل به صورت هم‌زمان مفید است.

نمایش اطلاعات خلاصه نحوه استفاده و خروج.
نمایش نسخه و خروج.

ترجمه بر اساس قوانین موجود در ‘نگاشت نویسه’ (character map) که در فایل charmap نام برده شده است انجام می‌شود. این فایل دارای قالب زیر است:

1.
هر خط نشان‌دهنده یک مدخل ترجمه است، به‌جز خطوط خالی و خطوط توضیح که نادیده گرفته می‌شوند.
2.
ابتدای هر مدخل می‌تواند با هر تعداد فضای خالی (فاصله یا تب) آغاز شود.
3.
خطوط توضیح با # آغاز می‌شوند. همه چیز در همان خط نادیده گرفته می‌شود.
4.
هر مدخل شامل نقطه کد یونیکد (Unicode codepoint) نویسه مورد نظر برای ترجمه در مبنای شانزده، به دنبال آن یک فاصله یا تب، و سپس رشته ترجمه تا انتهای خط است.
5.
رشته ترجمه دقیقاً همان‌گونه که هست در نظر گرفته می‌شود، شامل هرگونه فاصله در ابتدا و انتها (به‌جز جداکننده میان نقطه کد و رشته ترجمه) و تمامی انواع نویسه‌ها. نویسه خط جدید در انتها شامل آن نمی‌شود.

قالب فوق به‌گونه‌ای محدود طراحی شده است تا utf8trans ساده باقی بماند. اما در صورت تمایل به قالبی مبتنی بر XML، یک اسکریپت به نام xmlcharmap2utf8trans همراه با توزیع docbook2X ارائه شده است که نگاشت‌های نویسه را از فرمت XSLT 2.0 به فرمت utf8trans تبدیل می‌کند.

•
دستور utf8trans با فایل‌های باینری کار نمی‌کند، زیرا دنباله‌های نامعتبر UTF-8 در ورودی با نویسه‌های U+FFFD جایگزین می‌شوند. با این حال، نویسه‌های تهی (null) در ورودی به‌درستی پردازش می‌شوند. این محدودیت ممکن است در آینده برطرف شود.
•
هیچ راهی برای گنجاندن یک خط جدید یا نویسه تهی در رشته جایگزینی وجود ندارد.

Steve Cheng <stevecheng@users.sourceforge.net>.

3 March 2007 docbook2X 0.8.8