گزارش خرابی لینک
اطلاعات را وارد کنید .
گزارش انتشار نسخه جدید
اطلاعات را وارد کنید .
no-img
سفارش تایپ ،ترجمه، مقاله، تحقیق ، پایان نامه

EBCDIC =Extended Binary Coded Decimal Interchange code - سفارش تایپ ،ترجمه، مقاله، تحقیق ، پایان نامه


سفارش تایپ ،ترجمه، مقاله، تحقیق ، پایان نامه
adsads

ادامه مطلب

EBCDIC =Extended Binary Coded Decimal Interchange code
آبان 2, 1397
17 بازدید
گزارش نسخه جدید

EBCDIC =Extended Binary Coded Decimal Interchange code


EBCDIC =Extended Binary Coded Decimal Interchange code

كد تبادل گسترش باینری رقم دهدهی

ابتدا اینگونه شروع میكنیم لایه نمایش سه وظیفه دارد كه عبارتند از

1رمز گذاری و رمز گشایی

2فشرده سازی و بازگشایی

3تبدیل كد(یونی كد و ……)

توسط شركت IBM توسعه یافته است.

در اصل EBCDIC جز نمونه سوم یعنی تبدیل كد ها میباشد .و برای درك فهم بیشتر این موضوع اینگونه میتوانیم برایش مثال بزنیم

كدهای نمایش رشته های كاركتری اعداد صحیح و غیره ممكن است در كامپیوترهای مختلف متفاوت باشند.برای اینكه كامپیوترهابا كدهای مختلف بتوانند با یكدیگر ارتباط برقرار كنند اطلاعاتی كه انتقال می یابند با استفاده از كدهای استاندارد تعریف و ارسال می شوند

-این لایه وظیفه مدیریت ساختار پیام را بر عهده دارد و در اصل با روش EBCDIC یا روش های دیگر ….. برای آن استاندارد سازی میكند.

کدبندی EBCDIC که توسط شرکت آی بی ام در سال 1963 معرفی شد، یک جدول کدبندی ۸بیتی است.

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

 
 

خط بریل (به انگلیسی: Braille) که در سال ۱۸۲۱ توسط لوئیس بریل ابداع شد، روشی است که به طور گستردهای در دنیا توسط نابینایان برای خواندن و نوشتن استفاده میشود. خط بریل در زبانهای راست به چپ از راست به چپ نوشته شده و از چپ به راست خوانده میشود و در زبانهای چپ به راست برعکس.

 
 

 
 

کدبندی های رایج نویسه

 
 

        ISO 646

        ASCII

        EBCDIC

        CP37

        CP930

        CP1047

        ISO 8859:

        ISO 8859-1 Western
Europe

        ISO 8859-2 Western
and
Central
Europe

        ISO 8859-3 Western
Europe
and
South
European (Turkish, Maltese
plus
Esperanto)

        ISO 8859-4 Western
Europe
and
Baltic
countries (Lithuania, Estonia, Latvia
and
Lapp)

        ISO 8859-5 Cyrillic
alphabet

        ISO 8859-6 Arabic

        ISO 8859-7 Greek

        ISO 8859-8 Hebrew

        ISO 8859-9 Western
Europe
with
amended
Turkish
character
set

        ISO 8859-10 Western
Europe
with
rationalised
character
set
for
Nordic
languages, including
complete
Icelandic
set

        ISO 8859-11 Thai

        ISO 8859-13 Baltic
languages
plus
Polish

        ISO 8859-14 Celtic
languages (Irish
Gaelic, Scottish, Welsh)

        ISO 8859-15 Added
the
Euro
sign
and
other
rationalisations
to
ISO 8859-1

        ISO 8859-16 Central, Eastern
and
Southern
European
languages (Albanian, Croatian, Hungarian, Polish, Romanian, Serbian
and
Slovenian, but
also
French, German, Italian
and
Irish
Gaelic)

        CP437, CP737, CP850, CP852, CP855, CP857, CP858, CP860, CP861, CP862, CP863, CP865, CP866, CP869

        MS-Windows
character
sets:

        Windows-1250
for
Central
European
languages
that
use
Latin
script, (Polish, Czech, Slovak, Hungarian, Slovene, Serbian, Croatian, Romanian
and
Albanian)

        Windows-1251
for
Cyrillic
alphabets

        Windows-1252
for
Western
languages

        Windows-1253
for
Greek

        Windows-1254
for
Turkish

        Windows-1255
for
Hebrew

        Windows-1256
for
Arabic

        Windows-1257
for
Baltic
languages

        Windows-1258
for
Vietnamese

        Mac
OS
Roman

        KOI8-R, KOI8-U, KOI7

        MIK

        ISCII

        TSCII

        VISCII

        JIS
X 0208 is
a
widely
deployed
standard
for
Japanese
character
encoding
that
has
several
encoding
forms.

        Shift
JIS (Microsoft
Code
page 932 is
a
dialect
of
Shift_JIS)

        EUC-JP

        ISO-2022-JP

        JIS
X 0213 is
an
extended
version
of
JIS
X 0208.

        Shift_JIS-2004

        EUC-JIS-2004

        ISO-2022-JP-2004

        Chinese
Guobiao

        GB 2312

        GBK (Microsoft
Code
page 936)

        GB 18030

        Taiwan
Big5 (a
more
famous
variant
is
Microsoft
Code
page 950)

        Hong
Kong
HKSCS

        Korean

        KS
X 1001 is
a
Korean
double-byte
character
encoding
standard

        EUC-KR

        ISO-2022-KR

        Unicode (and
subsets
thereof, such
as
the 16-bitBasic
Multilingual
Plane‘). See
UTF-8

        ANSEL
or
ISO/IEC 6937

متن بالا از ویکی پدیا بود.

 
 

پروژه برای انجام شدن نیاز به پروسس زبان فارسی دارد. برای این کار از UTF-8  استفاده شد. برای این منظور روی رشته های حاوی کاراکترهای چند بایتی کار می شود.

برای مثال چند واج از مجموعه واج ها را در ادامه می آورم.

         define(‘vaj_be’
,
chr(216) . chr(16); 

        define(‘vaj_pe’
,
chr(217) . chr(190)); 

        define(‘vaj_te’
,
chr(216) . chr(170)); 

        define(‘vaj_se’
,
chr(216) . chr(171)); 

        define(‘vaj_jim’
,
chr(216) . chr(172)); 

        define(‘vaj_che’
,
chr(21 . chr(134)); 

همه ی واج ها باید به همین نحو مشخص شوند.

 
 

 
 

کد های یونیکد برداشت شده از جدول کد زبان عربی ارائه شده در کنسرسیوم یونیکد برداشته می شود.

 
 

الگوریتم های دوطرفه ی یونیکد نیز استفاده شده بود که مثال هایی آورده شده است :

Embedding
Level به معنای جهت نوشتار است. اگر زوج باشد مثل صفر، یعنی متن چپ به راست است. در غیر این صورت متن (یا زیر رشته) راست به چپ است.

حروف کوچک (مثل c) معنای حرف زبان لاتین ( یا هر زبان چپ به راستی) است.

حروف بزرگ (مثل C) معنای حرف زبان فارسی ( یا هر زبان راست به چپی) است.

اولین سطر در هر مثال نحوه ی ذخیره سازی روی دیسک یا حافظه است. سطر آخر نیز نحوه ی نمایش آن است.

مقادیر کنترلی از این قرارند :

 
 

 
 

 
 

و جدول قوانین به این قرار است :

 
 

در جدول فوق L نشان دهنده ی حرف لاتین است و R نشان دهنده ی حرف فارسی است و AN یک نشانه ی غیر حرفی (غیر الفبایی) فارسی و EN یک نشانه ی غیر حرفی لاتین است. EL هم همان Embedding
Level است.

Example
1
(embedding
level
=
0)

Storage:

car
means
CAR.

Before
Reordering:

car
means
CAR.

Resolved
levels:

00000000001110

Reverse
level
1:

car
means
RAC.

 
 

Example
2
(embedding
level
=
1)

Storage:

car
MEANS
CAR.

Before
Reordering:

car
MEANS
CAR.

Resolved
levels:

22211111111111

Reverse
level
2:

rac
MEANS
CAR.

Reverse
levels
1-2:

.RAC
SNAEM
car

 
 

Example
3
(embedding
level
=
0)

Storage:

he
said
“car
MEANS
CAR.

Before
Reordering:

he
said
“car
MEANS
CAR.

Resolved
levels:

000000000222111111111100

Reverse
level
2:

he
said
rac
MEANS
CAR.

Reverse
levels
1-2:

he
said
RAC
SNAEM
car
.

 
 

Example
4
(embedding
level
=
1)

Storage:

DID YOU SAY ‘he said “car MEANS CAR”‘?

Before Reordering:

DID YOU SAY ‘he said “car MEANS CAR”‘?

Resolved levels::

11111111111112222222224443333333333211

Reverse level 4:

DID YOU SAY ‘he said “rac MEANS CAR”‘?

Reverse levels 3-4:

DID YOU SAY ‘he said “RAC SNAEM car“‘?

Reverse levels 2-4:

DID YOU SAY ‘“rac MEANS CAR” dias eh‘?

Reverse levels 1-4:

?’he said RAC SNAEM car”‘ YAS UOY DID

 
 

در جدول فوق L نشان دهنده ی حرف لاتین است و R نشان دهنده ی حرف فارسی است و AN یک نشانه ی غیر حرفی (غیر الفبایی) فارسی و EN یک نشانه ی غیر حرفی لاتین است. EL هم همان Embedding
Level است.

نویسه ها در یونیکد به صورت U+xxxx یا U+xxxxxx ذخیره می شوند که x اعداد هگزادسیمال هستند.

 
 

سه قالب برای یونیکد داریم :

UTF-8

این قالب در استاندارد های اینترنت استفاده می شود. در پروژه نیز از همین قالب استفاده شده است.

این قالب، طول متغیر است.

UTF-16

این قالب در محیط های ۱۶ بیتی مثل گوشی های همراه ۱۶ بیتی استفاده می شود.

این قالب طول متغیر است.

UTF-32

این قالب در محیط های ۳۲ بیتی استفاده می شود مانند گوشی های همراه اپل.

این قالب طول ثابت است.

 
 

بسیاری از توابع برای تبدیل و کار با یونیکد در پی اچ پی پیاده سازی شده است و نیازی به طراحی دوباره نیست. در ضمن همه ی الگوریتم های مورد نیاز برای کار با یونیکد در سایت کنسرسیوم یونیکد ارائه شده است.

  حال به بررسی جزئی از نویسه ها در زبان فارسی که از جدول نویسه های عربی استفاده می کند می پردازیم.

بعضی از جداول در زیر آمده است :

 
 

 
 

 
 

 
 

در حالی که بخشی از جدول نویسه های لاتین که با کد ۰۰ مشخص می شوند در زیر آمده است :

   
 

برای پی بردن به اهمیت مطالب بالا، فرض کنید بخواهید جمله ی زیر را در ویندوز در برنامه ی نوت پد تایپ کنید :

برنامه نویسی با C++ آسان است.

 
 

مشاهده می کنید که این کار به صورت عادی متضمن ایراد است.

برای حل این مشکل باید از کاراکتر های کنترلی استفاده کرد که زیر رشته ی چپ به راست را مشخص کند.

با استفاده از ترکیب کلید های Ctrl+Alt+3 می توان زیر رشته ی چپ به راست را مشخص کرد.

همچنین برای معکوس آن در ترکیب کلیدی بالا به جای عدد ۳ از عدد ۴ استفاده کنید.

 
 

منبع: سمینار درس سیستم‌های چندرسانه‌ای-دوره کارشناسی اینجانب در دانشگاه اصفهان 



دیدگاه ها


دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *