مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

daadaa

عضویت از 1395/11/06

راهنمایی برای استفاده از این سورس کد (تبدیل گر اینکودینگ به یونیکد)

  • چهارشنبه 6 بهمن 1395
  • 08:53
تشکر میکنم


دوستان گل و اساتید گرامی لطفا منو راهنمایی کنید
من یه خروجی از نرم افزار گرفتم که گفتند ایران سیستم هست...میخوام این خروجی با پسوند excel یا csv رو در وبسایت استفاده کنم.باید قبلش به کارکتر های قابل خواندن در وبسایت تبدیل بشه یعنی یونیکد و utf۸

من یه جستجویی کردم ولی چون دانش برنامه نویسی تحت ویندوز بلد نیستم نمیدونم چطوری باید از این برنامه ها استفاده کرد.

من چندین فایل مختلف دارم که حاوی داده هایی با فونت (یا ...) ایران سیستم هست با پسوند csv و xls
میخوام این داده ها به یونیکد تبدیل بشه.

مثلا این جارو من پیدا کردم ولی نمیدنم چطوری استفاده میشه!
https://github.com/mohsen-d/IranSystemConvertor/

توضیحات برنامه نویسش هم در سایت برنامه نویس به این صورته:
ایران سیستم یک کاراکتر انکودینگ برای نمایش کاراکترهای فارسی در محیط DOS بود و مورد استفاده قرار می گرفت و البته همچنان در بسیاری از نرم افزارهای تحت DOS در سازمان ها مورد استفاده است . کدهای مختلفی برای تبدیل این انکودینگ به انکودهای استاندارد تحت ویندوز وجود دارد که از آنجا که هیچکدام به نظرم جالب نبودند ، سعی کردم خودم یک مبدل برای تبدیل آن به فرمت Unicode بنویسم . ایران سیستم یک انکودینگ ۸ بیتی مبتنی بر ACII است . ۱۲۸ کاراکتر ابتدایی آن دست نخورده و همان کاراکتر های ASCII است . تنها از کاراکتر ۱۲۸ الی ۲۵۵ استفاده شده است .
روش کار مبدل : برای تبدیل بر خلاف روش هایی که از طریق انجام محاسبات اینکار را انجام می دهند من از نگاشت کاراکترها استفاده کردم . به این ترتیب که ابتدا رشته حاوی کاراکترهای ایران سیستم را با استفاده از انکودینگ Arabic (Windows ۱۲۵۶) تبدیل به آرایه از بایت ها می کنم . سپس برای هر بایت در جدول CodePage مربوط به ایران سیستم معادل آن را در جدول CodePage مربوط به Windows ۱۲۵۶ پیدا و ایندو را در یک قالب یک Key/Value Pair در یک Dictionary ثبت می کنم . برای مثال فرم کامل کاراکتر ب در خانه ۱۴۶ جدول CodePage ایران سیستم قرار دارد درحالی در جدول CodePage مربوط به Windows ۱۲۵۶ در خانه ۲۰۰ است .
نکته ای که در مورد ایران سیستم باید توجه داشت اینست که فرم های مختلف یک کاراکتر را جداگانه انکود می کند . در حالی که در Arabic تمام فرم های یک کاراکتر یک انکود دارند و نمایش فرم های مختلف توسط فونت ها و نرم افزار نمایش دهنده مدیریت می شود .
در مرحله آخر بعد از یافتن معادل تمام کاراکترها در انکودینگ Arabic آنها را تبدیل به Unicode می کنم .

پاسخ های این پرسش

تعداد پاسخ ها : 0 پاسخ
در حال حاضر هیچ پاسخی ارسال نشده است
کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)