نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی
  • خانه
  • سیستم عامل
  • جدول آسوکا کامل است. رمزگذاری ASCII (کد استاندارد آمریکایی برای تبادل اطلاعات) - رمزگذاری متن اصلی برای لاتین

جدول آسوکا کامل است. رمزگذاری ASCII (کد استاندارد آمریکایی برای تبادل اطلاعات) - رمزگذاری متن اصلی برای لاتین

با سلام خدمت خوانندگان عزیز سایت وبلاگ. امروز با شما در مورد اینکه کراکوزیابرها از کجا در سایت و برنامه ها آمده اند، کدگذاری متنی وجود دارد و کدام یک باید استفاده شود، صحبت خواهیم کرد. بیایید نگاهی دقیق‌تر به تاریخچه توسعه آنها بیندازیم، از ASCII پایه، و همچنین نسخه‌های توسعه‌یافته آن CP866، KOI8-R، Windows 1251 و پایان دادن به رمزگذاری‌های مدرن کنسرسیوم یونیکد UTF 16 و 8.

برای برخی، این اطلاعات ممکن است اضافی به نظر برسد، اما می‌دانید که من در مورد کراکوزیابرهای خزنده شده (مجموعه نویسه‌های غیرقابل خواندن) چقدر سؤال دریافت می‌کنم. اکنون این فرصت را خواهم داشت که همه را به متن این مقاله ارجاع دهم و به طور مستقل جم های خود را بیابم. خوب، برای جذب اطلاعات آماده شوید و سعی کنید داستان را دنبال کنید.

ASCII - رمزگذاری متن اصلی برای الفبای لاتین

توسعه رمزگذاری های متنی همزمان با شکل گیری صنعت فناوری اطلاعات صورت گرفت و در این مدت آنها توانستند دستخوش تغییرات بسیار زیادی شوند. از نظر تاریخی، همه چیز با EBCDIC شروع شد، که در تلفظ روسی تقریباً خوشایند نبود، که امکان رمزگذاری حروف الفبای لاتین، اعداد عربی و علائم نگارشی را با کاراکترهای کنترلی ممکن می کرد.

اما با این حال، نقطه شروع برای توسعه رمزگذاری متن مدرن، معروف است ASCII(کد استاندارد آمریکایی برای تبادل اطلاعات، که در روسی معمولا به عنوان "aski" تلفظ می شود). این 128 نویسه اول را توصیف می کند که بیشتر توسط کاربران انگلیسی زبان استفاده می شود - حروف لاتین، اعداد عربی و علائم نگارشی.

حتی این 128 کاراکتر توصیف شده در ASCII شامل برخی از نمادهای خدماتی مانند براکت، خطوط هش، ستاره و غیره است. در واقع، شما خودتان می توانید آنها را ببینید:

این 128 کاراکتر از نسخه اصلی ASCII هستند که به استاندارد تبدیل شدند و در هر کدگذاری دیگری مطمئناً آنها را ملاقات خواهید کرد و آنها به ترتیب قرار خواهند گرفت.

اما واقعیت این است که با کمک یک بایت اطلاعات، می توان نه 128، بلکه 256 مقدار مختلف (دو به توان هشت برابر با 256) را رمزگذاری کرد، بنابراین، پس از نسخه پایه Asuka. ، یک سری کامل ظاهر شد رمزگذاری های ASCII توسعه یافته، که در آن علاوه بر 128 کاراکتر اصلی، امکان رمزگذاری نمادهای رمزگذاری ملی (مثلاً روسی) وجود داشت.

در اینجا، شاید ارزش داشته باشد که در مورد سیستم های اعدادی که در توضیحات استفاده می شود، کمی بیشتر صحبت کنیم. اولا، همانطور که همه شما می دانید، کامپیوتر فقط با اعداد در سیستم دودویی کار می کند، یعنی با صفر و یک ("جبر بولی"، اگر کسی به کالج یا مدرسه رفت). که هر کدام یک 2 در توان هستند که از صفر شروع می شود و در هفتم تا دو می رسد:

درک اینکه تنها 256 ترکیب ممکن از صفر و یک در چنین ساختاری وجود دارد دشوار نیست. تبدیل یک عدد از یک سیستم باینری به یک اعشاری بسیار ساده است. شما فقط باید تمام قدرت های دو را که بالاتر از آنها وجود دارد جمع کنید.

در مثال ما، این 1 (2 به توان صفر) به اضافه 8 (دو به توان 3)، به اضافه 32 (دو به توان پنجم)، به اضافه 64 (به توان ششم)، به اضافه 128 (به توان هفتم) است. مجموع در نماد اعشاری 233 می شود. همانطور که می بینید، همه چیز بسیار ساده است.

اما اگر به جدول با کاراکترهای ASCII دقت کنید، خواهید دید که آنها در کدگذاری هگزادسیمال نشان داده شده اند. به عنوان مثال، یک ستاره با عدد هگزادسیمال 2A در آسوکا مطابقت دارد. حتما می دانید که در سیستم اعداد هگزادسیمال علاوه بر اعداد عربی از حروف لاتین از A (به معنی ده) تا F (به معنی پانزده) نیز استفاده می شود.

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

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

نسخه های توسعه یافته Asuka - رمزگذاری CP866 و KOI8-R با شبه نگاری

بنابراین، ما شروع به صحبت در مورد ASCII کردیم، که، همانطور که بود، نقطه شروعی برای توسعه همه رمزگذاری های مدرن (ویندوز 1251، یونیکد، UTF 8) بود.

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

در اینجا لازم است برای روشن شدن یک بار دیگر انحراف داشته باشیم - چرا اصلاً به رمزگذاری نیاز داریممتون و چرا آنقدر مهم است. نمادها در صفحه رایانه شما بر اساس دو چیز تشکیل می شوند - مجموعه ای از فرم های برداری (نمایش) از انواع کاراکترها (آنها در فایل های مشترک هستند) و کدی که به شما امکان می دهد از این مجموعه فرم های برداری (فونت) خارج شوید. فایل) دقیقاً نمادی است که باید در جای درست درج شود.

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

برنامه ای که این متن را روی صفحه نمایش می دهد (ویرایشگر متن، مرورگر و غیره)، هنگام تجزیه کد، رمزگذاری کاراکتر بعدی را می خواند و در فایل فونت مورد نیاز به دنبال فرم برداری مربوطه می گردد که برای نمایش این وصل است. سند متنی همه چیز ساده و پیش پا افتاده است.

این بدان معنی است که برای رمزگذاری هر کاراکتری که نیاز داریم (مثلاً از الفبای ملی)، دو شرط باید رعایت شود - شکل برداری این کاراکتر باید با فونت استفاده شده باشد و این کاراکتر می تواند در رمزگذاری های ASCII توسعه یافته در کدگذاری شود. یک بایت بنابراین، یک دسته کامل از این گزینه ها وجود دارد. انواع مختلفی از Asuka توسعه یافته فقط برای رمزگذاری کاراکترهای زبان روسی وجود دارد.

به عنوان مثال، در ابتدا ظاهر شد CP866، که در آن امکان استفاده از حروف الفبای روسی وجود داشت و نسخه توسعه یافته ASCII بود.

آن ها قسمت بالای آن کاملاً با نسخه اصلی Asuka (128 کاراکتر لاتین، اعداد و هر چیز مزخرفی) مطابقت دارد که در تصویر بالا ارائه شده است، اما قسمت پایین جدول با رمزگذاری CP866 نمای نشان داده شده در تصویر را داشت. درست در زیر و مجاز به رمزگذاری 128 علامت دیگر (حروف روسی و انواع شبه گرافیک):

ببینید، در ستون سمت راست، اعداد با 8 شروع می شوند، زیرا اعداد 0 تا 7 به بخش اصلی ASCII اشاره دارند (نگاه کنید به تصویر اول). که حرف روسی "M" در CP866 دارای کد 9C خواهد بود (در تقاطع خط مربوطه با 9 و ستون با عدد C در نماد هگزادسیمال قرار دارد)، که می تواند در یک بایت اطلاعات نوشته شود، و اگر یک فونت مناسب با حروف روسی وجود دارد، این حرف بدون مشکل در متن نمایش داده می شود.

این مبلغ از کجا آمده است؟ شبه نگاری در CP866? نکته این است که این رمزگذاری برای متن روسی در آن سال های خزدار توسعه یافته است، زمانی که چنین گسترش سیستم عامل های گرافیکی مانند اکنون وجود نداشت. و در Dos و سیستم‌عامل‌های متنی مشابه، شبه گرافیک‌ها این امکان را به وجود می‌آورد که به نوعی طراحی متون را متنوع کنیم و بنابراین CP866 و سایر همتایان آن از دسته نسخه‌های توسعه‌یافته Asuka در آن فراوان است.

CP866 توسط IBM توزیع شد، اما علاوه بر این، تعدادی رمزگذاری برای کاراکترهای روسی توسعه داده شد، به عنوان مثال، این نوع (ASCII توسعه یافته) را می توان نسبت داد. KOI8-R:

اصل عملکرد آن مانند CP866 است که کمی پیشتر توضیح داده شد - هر کاراکتر متن با یک بایت واحد کدگذاری می شود. اسکرین شات نیمه دوم جدول KOI8-R را نشان می دهد نیمه اول کاملاً با Asuka اصلی مطابقت دارد که در اولین تصویر در این مقاله نشان داده شده است.

از جمله ویژگی های رمزگذاری KOI8-R، می توان به این نکته اشاره کرد که حروف روسی در جدول آن به ترتیب حروف الفبا نیستند، همانطور که برای مثال در CP866 انجام دادند.

اگر به اولین اسکرین شات (قسمت پایه، که در تمام رمزگذاری های توسعه یافته موجود است) نگاه کنید، متوجه خواهید شد که در KOI8-R حروف روسی در همان سلول های جدول قرار دارند که حروف همخوان الفبای لاتین قرار دارند. با آنها از قسمت اول جدول. این کار برای راحتی جابجایی از حروف روسی به نویسه‌های لاتین با کنار گذاشتن تنها یک بیت (دو تا توان هفتم یا 128) انجام شد.

ویندوز 1251 - نسخه مدرن ASCII و دلیل بیرون آمدن کراکوزیابری

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

آنها متعلق به کدهای به اصطلاح ANSI بودند که توسط مؤسسه استانداردهای آمریکایی توسعه یافتند. در اصطلاح رایج، نام الفبای سیریلیک هنوز برای نسخه با پشتیبانی از زبان روسی استفاده می شد. یک مثال از این می تواند خدمت کند.

تفاوت مطلوبی با CP866 و KOI8-R که قبلاً استفاده شده بود از این جهت بود که نمادهای شبه گرافیکی در آن توسط نمادهای گمشده تایپوگرافی روسی (به جز علامت لهجه) و همچنین نمادهای مورد استفاده در زبان های اسلاوی گرفته شد. نزدیک به روسی (اوکراینی، بلاروسی و غیره) :

به دلیل انبوهی از رمزگذاری های زبان روسی، تولیدکنندگان فونت و تولیدکنندگان نرم افزار دائماً دچار سردرد می شدند و ما، خوانندگان عزیز، اغلب از آن بدنام خلاص می شدیم. کراکوزیابریزمانی که با نسخه استفاده شده در متن سردرگمی وجود داشت.

اغلب آنها هنگام ارسال و دریافت پیام از طریق ایمیل خارج می شدند که مستلزم ایجاد جداول تبدیل بسیار پیچیده بود که در واقع نمی توانست این مشکل را به طور اساسی حل کند و اغلب کاربران برای مکاتبات از کراکوزیاب های بدنام در هنگام استفاده اجتناب می کردند. کدهای روسی مانند CP866، KOI8-R یا Windows 1251.

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

به عنوان مثال، اگر بخواهیم کاراکترهای کدگذاری شده با CP866 را با استفاده از جدول کد ویندوز 1251 نمایش دهیم، همان krakozyabry (مجموعه بی معنی از کاراکترها) ظاهر می شود و کاملاً جایگزین متن پیام می شود.

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

در پایان، چنین وضعیتی با انبوهی از رمزگذاری ها و کراکوزیابراهای دائماً در حال ظهور خسته از بسیاری، پیش نیازهایی برای ایجاد یک تنوع جهانی جدید وجود داشت که جایگزین همه موارد موجود شود و در نهایت مشکل ریشه ای ظاهر متون ناخوانا را حل کند. . علاوه بر این، مشکل زبان هایی مانند چینی وجود داشت که نویسه های زبان بسیار بیشتر از 256 بود.

یونیکد - رمزگذاری جهانی UTF 8، 16 و 32

این هزاران کاراکتر از گروه زبان آسیای جنوب شرقی را نمی‌توان در یک بایت اطلاعات توصیف کرد، که برای رمزگذاری کاراکترها در نسخه‌های توسعه‌یافته ASCII اختصاص داده شده است. در نتیجه کنسرسیومی به نام ایجاد شد یونیکد(یونیکد - کنسرسیوم یونیکد) با همکاری بسیاری از رهبران صنعت فناوری اطلاعات (کسانی که نرم افزار تولید می کنند، سخت افزار کدنویسی می کنند، فونت ایجاد می کنند) که علاقه مند به ظهور یک رمزگذاری متن جهانی بودند.

اولین نسخه منتشر شده تحت نظارت کنسرسیوم یونیکد بود UTF 32... عدد در نام رمزگذاری به معنای تعداد بیت هایی است که برای رمزگذاری یک کاراکتر استفاده می شود. 32 بیت 4 بایت اطلاعات است که برای رمزگذاری یک کاراکتر در رمزگذاری جهانی UTF جدید مورد نیاز است.

در نتیجه، همان فایل با متن کدگذاری شده در نسخه توسعه یافته ASCII و در UTF-32، در مورد دوم، اندازه (وزن) چهار برابر بیشتر خواهد داشت. این بد است، اما اکنون این فرصت را داریم که تعداد کاراکترهای برابر با دو را با توان سی و دوم رمزگذاری کنیم ( میلیاردها شخصیت، که هر مقدار واقعا ضروری را با یک حاشیه عظیم پوشش می دهد).

اما بسیاری از کشورهای دارای زبان های گروه اروپایی نیازی به استفاده از چنین تعداد زیادی کاراکتر در رمزگذاری نداشتند، اما زمانی که از UTF-32 استفاده شد، وزن اسناد متنی را چهار برابر افزایش دادند. در نتیجه، حجم ترافیک اینترنت و حجم داده های ذخیره شده افزایش می یابد. این مقدار زیادی است و هیچ کس نمی تواند چنین ضایعاتی را بپردازد.

در نتیجه توسعه یونیکد، UTF-16، که آنقدر موفق بود که به طور پیش فرض به عنوان فضای پایه برای همه نمادهایی که استفاده می کنیم پذیرفته شد. از دو بایت برای رمزگذاری یک کاراکتر استفاده می کند. بیایید ببینیم این مورد چگونه به نظر می رسد.

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

ضمناً با کلیک بر روی هر یک از آنها می توانید دو بایت آن را مشاهده کنید کد UTF-16متشکل از چهار رقم هگزادسیمال:

چند کاراکتر را می توان در UTF-16 با 16 بیت کدگذاری کرد؟ 65536 (دو به توان شانزده) و این عدد بود که به عنوان فضای پایه در یونیکد در نظر گرفته شد. علاوه بر این، راه هایی برای رمزگذاری با آن و حدود دو میلیون کاراکتر وجود دارد، اما به فضای گسترده یک میلیون کاراکتر متن محدود شده بود.

اما حتی این نسخه موفق رمزگذاری یونیکد رضایت زیادی برای کسانی که مثلاً برنامه ها را فقط به زبان انگلیسی می نوشتند، به همراه نداشت، زیرا پس از انتقال از نسخه توسعه یافته ASCII به UTF-16، وزن اسناد دو برابر شد (یک بایت در هر یک کاراکتر در Aski و دو بایت برای همان کاراکتر در UTP-16).

دقیقاً برای رضایت همه و همه چیز در کنسرسیوم یونیکد تصمیم گرفته شد که رمزگذاری طول متغیر... اسمش را گذاشتند UTF-8. با وجود عدد هشت در نام، واقعا طول متغیری دارد، یعنی. هر کاراکتر در متن را می توان به دنباله ای از یک تا شش بایت کدگذاری کرد.

در عمل، در UTF-8، فقط از محدوده یک تا چهار بایت استفاده می شود، زیرا فراتر از چهار بایت کد، حتی از نظر تئوری نیز چیزی قابل تصور نیست. تمام حروف لاتین موجود در آن در یک بایت کدگذاری می شوند، درست مانند ASCII خوب قدیمی.

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

کاراکترهای سیریلیک در UTF-8 در دو بایت و، به عنوان مثال، نویسه های گرجی - در سه بایت کدگذاری می شوند. کنسرسیوم یونیکد پس از ایجاد UTF 16 و 8 مشکل اصلی را حل کرد - اکنون ما داریم یک فضای کد واحد در فونت ها وجود دارد... و اکنون تولید کنندگان آنها فقط می توانند آن را با فرم های برداری نمادهای متنی بر اساس نقاط قوت و قابلیت های خود پر کنند. در حال حاضر حتی در ست.

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

Krakozyabry به جای حروف روسی - چگونه آن را تعمیر کنیم

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

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

در منوی بالای Notepad ++ یک مورد "Encodings" وجود دارد که در آن می توانید نسخه موجود را به نسخه ای که به طور پیش فرض در سایت خود استفاده می شود تبدیل کنید:

در مورد سایت جوملا 1.5 و بالاتر و همچنین در مورد وبلاگ در وردپرس برای جلوگیری از ظاهر شدن کرک گزینه را انتخاب کنید. UTF 8 بدون BOM... پیشوند BOM چیست؟

واقعیت این است که هنگامی که کدنویسی YUTF-16 توسعه یافت، به دلایلی تصمیم گرفتند چیزی مانند توانایی نوشتن یک کد کاراکتر، هم به ترتیب مستقیم (به عنوان مثال، 0A15) و هم به صورت معکوس (150A) به آن متصل کنند. . و برای اینکه برنامه ها بفهمند کدها را در کدام دنباله بخوانند و اختراع شد BOM(Byte Order Mark یا به عبارتی امضا) که در همان ابتدای اسناد با افزودن سه بایت اضافی بیان می شد.

در رمزگذاری UTF-8، هیچ BOM در کنسرسیوم یونیکد پیش بینی نشده است، و بنابراین اضافه کردن یک امضا (این بدنام ترین سه بایت اضافی به ابتدای سند) به سادگی از خواندن کد برخی از برنامه ها جلوگیری می کند. بنابراین، هنگام ذخیره فایل ها در UTP، همیشه باید گزینه بدون BOM (بدون امضا) را انتخاب کنیم. بنابراین شما پیشروی می کنید خود را از خزیدن از krakozyabrov محافظت کنید.

نکته قابل توجه این است که برخی از برنامه های ویندوز نمی توانند این کار را انجام دهند (نمی توانند متن را در UTP-8 بدون BOM ذخیره کنند)، به عنوان مثال، Notepad بدنام ویندوز. سند را در UTF-8 ذخیره می کند، اما همچنان یک امضا (سه بایت اضافی) به ابتدا اضافه می کند. علاوه بر این، این بایت ها همیشه یکسان خواهند بود - کد را به ترتیب مستقیم بخوانید. اما در سرورها، به دلیل این چیز کوچک، ممکن است مشکلی ایجاد شود - krakozyabry بیرون خواهد آمد.

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

در Notepad ++، هنگام انتخاب یک رمزگذاری، می توانید متن را به رمزگذاری UCS-2 تبدیل کنید، که ذاتاً بسیار نزدیک به استاندارد یونیکد است. همچنین در Notepad امکان رمزگذاری متن در ANSI وجود خواهد داشت. در رابطه با زبان روسی، قبلاً توسط ما در بالای ویندوز 1251 توضیح داده شده است. این اطلاعات از کجا آمده است؟

در رجیستری سیستم عامل ویندوز شما ثبت شده است - در مورد ANSI کدام کد را انتخاب کنید، در مورد OEM کدام را انتخاب کنید (برای زبان روسی CP866 خواهد بود). اگر زبان پیش‌فرض دیگری را روی رایانه خود نصب کنید، این کدگذاری‌ها با زبان‌های مشابهی از دسته ANSI یا OEM برای همان زبان جایگزین می‌شوند.

پس از اینکه سند را در کدگذاری مورد نیاز خود در Notepad ++ ذخیره کردید یا سند را از سایت برای ویرایش باز کردید، می توانید نام آن را در گوشه سمت راست پایین ویرایشگر مشاهده کنید:

برای جلوگیری از krakozyabrov، علاوه بر اقداماتی که در بالا توضیح داده شد، نوشتن اطلاعات مربوط به این رمزگذاری در سربرگ کد منبع همه صفحات سایت مفید خواهد بود تا در سرور یا میزبان محلی سردرگمی ایجاد نشود.

به طور کلی در تمام زبان های نشانه گذاری فرامتن به جز Html از یک اعلان خاص xml استفاده می شود که نشان دهنده کدگذاری متن است.

قبل از شروع به تجزیه کد، مرورگر می داند که از کدام نسخه استفاده می شود و دقیقاً چگونه کدهای کاراکتر این زبان باید تفسیر شوند. اما آنچه قابل توجه است این است که اگر سند را در یونیکد پیش‌فرض ذخیره کنید، می‌توان این اعلان xml را حذف کرد (اگر BOM وجود نداشته باشد کدگذاری UTF-8 یا اگر BOM وجود داشته باشد YUTF-16 در نظر گرفته می‌شود).

در مورد یک سند Html، رمزگذاری مشخص شده است عنصر متا، که بین تگ های Head باز و بسته می شود:

... ...

این ورودی کاملاً متفاوت از ورودی است، اما به طور کامل با استاندارد جدید Html 5 که به آرامی معرفی می شود مطابقت دارد و 100٪ توسط هر مرورگر مورد استفاده فعلی به درستی درک می شود.

در تئوری، عنصر Meta که رمزگذاری سند Html را نشان می دهد بهتر است تنظیم شود تا حد امکان در سرفصل سندبه طوری که در زمان ملاقات با اولین کاراکتر متن که از ANSI اولیه نیست (که همیشه به درستی و با هر گونه تغییری خوانده می شود)، مرورگر باید از قبل اطلاعاتی در مورد نحوه تفسیر کدهای این کاراکترها داشته باشد.

موفق باشی! به زودی شما را در صفحات سایت وبلاگ می بینیم

با رفتن به اینجا می توانید ویدیوهای بیشتری را تماشا کنید
");">

ممکن است علاقه مند باشید

URL ها چیست، تفاوت بین لینک های مطلق و نسبی برای یک سایت چیست
OpenServer یک سرور محلی مدرن و نمونه ای از استفاده از آن برای نصب وردپرس بر روی کامپیوتر است
Chmod چیست، چه مجوزهایی برای اختصاص دادن به فایل ها و پوشه ها (777، 755، 666) و نحوه انجام آن از طریق PHP
جستجوی Yandex در سایت و فروشگاه آنلاین

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

یکی از سیستم های ارتباط کدهای باینری با کاراکترهای قابل چاپ و کنترل می باشد

در سطح فعلی توسعه فناوری رایانه، کاربر نیازی به دانستن کد هر نماد خاص ندارد. با این حال، درک کلی از نحوه انجام کدنویسی بسیار مفید است و برای برخی از گروه‌های متخصص حتی ضروری است.

ایجاد ASCII

در شکل اصلی خود، رمزگذاری در سال 1963 توسعه یافت و سپس طی 25 سال دو بار به روز شد.

در نسخه اصلی، جدول کاراکترهای ASCII شامل 128 کاراکتر بود، بعداً یک نسخه توسعه یافته ظاهر شد که در آن 128 کاراکتر اول ذخیره شدند و کاراکترهایی که قبلاً وجود نداشتند به کدهایی با بیت هشتم اختصاص داده شدند.

برای چندین سال، این رمزگذاری محبوب ترین در جهان بوده است. در سال 2006، لاتین 1252 مقام اول را به خود اختصاص داد و از پایان سال 2007 تا به امروز، یونیکد به طور قاطعانه جایگاه پیشرو را در اختیار داشته است.

نمایش کامپیوتر ASCII

هر کاراکتر اسکی دارای کد 8 کاراکتری است که صفر یا یک را نشان می دهد. حداقل عدد در چنین نمایشی صفر است (هشت صفر در سیستم دودویی)، که کد اولین عنصر در جدول است.

دو کد در جدول برای جابجایی بین استاندارد US-ASCII و نسخه ملی آن رزرو شده است.

پس از اینکه ASCII شامل نه 128، بلکه 256 کاراکتر شد، یک نوع رمزگذاری گسترده شد که در آن نسخه اصلی جدول در 128 کد اول با بیت هشتم صفر ذخیره شد. نشانه های نوشته ملی در نیمه بالایی جدول (مواضع 128-255) نگهداری می شد.

کاربر نیازی به دانستن مستقیم کدهای کاراکتر ASCII ندارد. معمولاً برای یک توسعه‌دهنده نرم‌افزار کافی است که تعداد یک عنصر در جدول را بداند تا در صورت لزوم، کد آن را با استفاده از یک سیستم باینری محاسبه کند.

زبان روسی

پس از توسعه رمزگذاری برای زبان های اسکاندیناوی، چینی، کره ای، یونانی و غیره در اوایل دهه 70، اتحاد جماهیر شوروی نیز شروع به ایجاد نسخه خود کرد. به زودی نسخه ای از رمزگذاری 8 بیتی به نام KOI8 ساخته شد که اولین 128 کد کاراکتر ASCII را حفظ می کند و همان تعداد موقعیت را برای حروف الفبای ملی و کاراکترهای اضافی اختصاص می دهد.

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

مشکلات ASCII

از آنجایی که تعداد عناصر حتی در جدول توسعه یافته از 256 تجاوز نمی کرد، امکان قرار دادن چندین اسکریپت مختلف در یک رمزگذاری وجود نداشت. در دهه 90، مشکل "crocozyabr" در Runet ظاهر شد، زمانی که متون تایپ شده با حروف ASCII روسی به اشتباه نمایش داده شدند.

مشکل این بود که کدهای انواع مختلف ASCII با یکدیگر مطابقت نداشتند. به یاد بیاورید که موقعیت‌های 128-255 می‌توانند شامل کاراکترهای مختلفی باشند، و هنگام تغییر یک رمزگذاری سیریلیک به دیگری، تمام حروف متن با حروف دیگری که دارای یک شماره یکسان در نسخه دیگری از رمزگذاری هستند جایگزین می‌شوند.

وضعیت فعلی

با ظهور یونیکد، محبوبیت ASCII به شدت کاهش یافت.

دلیل این امر در این واقعیت نهفته است که رمزگذاری جدید امکان قرار دادن علائم تقریباً همه زبان های نوشتاری را فراهم می کند. در این مورد، 128 کاراکتر ASCII اول با همان کاراکترهای یونیکد مطابقت دارد.

در سال 2000، ASCII محبوب ترین رمزگذاری در اینترنت بود و در 60٪ از صفحات وب فهرست شده توسط گوگل استفاده می شد. تا سال 2012، سهم چنین صفحاتی به 17٪ کاهش یافت و یونیکد (UTF-8) جای محبوب ترین رمزگذاری را گرفت.

بنابراین، ASCII بخش مهمی از تاریخ فناوری اطلاعات است، اما استفاده از آن در آینده بی‌امید به نظر می‌رسد.

یونیکد (به انگلیسی Unicode) یک استاندارد رمزگذاری کاراکتر است. به عبارت ساده، این جدول مطابقت کاراکترهای متن است (، حروف، عناصر نقطه گذاری) کدهای باینری کامپیوتر فقط دنباله صفر و یک را می فهمد. برای اینکه او بداند دقیقاً چه چیزی را باید روی صفحه نمایش دهد، لازم است به هر کاراکتر یک عدد منحصر به فرد اختصاص دهد. در دهه هشتاد، کاراکترها در یک بایت، یعنی در هشت بیت (هر بیت 0 یا 1) رمزگذاری می شدند. بنابراین، معلوم شد که یک جدول (معروف به رمزگذاری یا مجموعه) فقط می تواند 256 کاراکتر را در خود جای دهد. این ممکن است حتی برای یک زبان نیز کافی نباشد. بنابراین، بسیاری از رمزگذاری های مختلف ظاهر شد، که سردرگمی با آنها اغلب به این واقعیت منجر می شد که به جای متن قابل خواندن، مقداری کراکوزیابری عجیب و غریب روی صفحه ظاهر می شد. یک استاندارد واحد مورد نیاز بود که تبدیل به یونیکد شد. بیشترین استفاده از رمزگذاری UTF-8 (فرمت تبدیل یونیکد) است که از 1 تا 4 بایت برای نمایش یک کاراکتر استفاده می کند.

نمادها

کاراکترها در جداول یونیکد با اعداد هگزادسیمال شماره گذاری می شوند. به عنوان مثال، حرف بزرگ سیریلیک M با U + 041C مشخص شده است. این به این معنی است که در تقاطع خط 041 و ستون C قرار دارد. می توانید به سادگی آن را کپی کنید و سپس در جایی قرار دهید. برای اینکه لیست چند کیلومتری را زیر و رو نکنید، باید از جستجو استفاده کنید. با رفتن به صفحه نماد، شماره آن را در یونیکد و نحوه ترسیم آن با فونت های مختلف مشاهده می کنید. شما همچنین می توانید خود علامت را وارد نوار جستجو کنید، حتی اگر یک مربع به جای آن کشیده شده باشد، حداقل برای اینکه بفهمید چه چیزی بوده است. همچنین در این سایت مجموعه‌های ویژه (و - تصادفی) از همان نوع آیکون‌ها که از بخش‌های مختلف جمع‌آوری شده‌اند، برای سهولت استفاده وجود دارد.

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

کنسرسیوم یونیکد خود شخصیت های جدیدی اختراع نمی کند. آیکون هایی که کاربرد خود را در جامعه پیدا می کنند به جداول اضافه می شوند. به عنوان مثال، علامت روبل به مدت شش سال قبل از اضافه شدن به یونیکد به طور فعال مورد استفاده قرار گرفت. پیکتوگرام های ایموجی (شکلک ها) نیز برای اولین بار در ژاپن و قبل از اینکه در رمزگذاری گنجانده شوند به طور گسترده مورد استفاده قرار گرفتند. اما علائم تجاری و آرم های شرکت در اصل اضافه نمی شوند. حتی به اندازه اپل اپل یا پرچم ویندوز رایج است. امروزه در نسخه 8.0 حدود 120 هزار کاراکتر کدگذاری شده است.

نمادهای همپوشانی

کاراکتر BS (backspace) به چاپگر اجازه می دهد تا یک کاراکتر را بازنویسی کند. در ASCII، برای اضافه کردن نشانه‌ها به حروف به این روش پیش بینی شده بود، به عنوان مثال:

  • a BS "→ á
  • یک BS `→ à
  • یک BS ^ → â
  • o BS / → ø
  • c BS، → ç
  • n BS ~ → ñ

توجه داشته باشید: در فونت‌های قدیمی، آپاستروف "با یک مایل به سمت چپ کشیده می‌شد و تایلد ~ به سمت بالا منتقل می‌شد، به طوری که آنها فقط نقش حاد و تار را در بالا قرار می‌دادند.

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

  • یک BS a → آ
  • یک BS _ → آ

توجه داشته باشید: برای مثال در سیستم man help استفاده می شود.

انواع ملی ASCII

استاندارد ISO 646 (ECMA-6) امکان قرار دادن کاراکترهای ملی را در جای خود فراهم می کند @ [ \ ] ^ ` { | } ~ ... علاوه بر این، در محل # می توان جای داد £ ، و در جای خود $ - ¤ ... این سیستم برای زبان های اروپایی که تنها به چند کاراکتر اضافی نیاز دارند، مناسب است. نسخه ASCII بدون کاراکترهای ملی US-ASCII یا "نسخه مرجع بین المللی" نامیده می شود.

متعاقباً، استفاده از رمزگذاری های 8 بیتی (صفحات کد) راحت تر است، جایی که نیمه پایین جدول کد (0-127) توسط نویسه های US-ASCII و نیمه بالایی (128-255) اشغال شده است. توسط شخصیت های اضافی، از جمله مجموعه ای از شخصیت های ملی اشغال شده است. بنابراین، نیمه بالایی جدول ASCII، قبل از پذیرش گسترده یونیکد، به طور فعال برای نشان دادن کاراکترهای محلی، حروف زبان محلی استفاده می شد. فقدان استاندارد یکپارچه برای قرار دادن کاراکترهای سیریلیک در جدول ASCII باعث ایجاد مشکلات زیادی در رمزگذاری (KOI-8، Windows-1251، و غیره) شد. زبان های دیگر با خط غیر لاتین نیز از وجود چندین رمزگذاری مختلف رنج می برند.

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .C .D .E .F
0. NUL SOM EOA EOM EQT WRU RU BELL BKSP Ht LF VT FF CR بنابراین SI
1. DC 0 DC 1 DC 2 DC 3 DC 4 ERR همگام سازی LEM S 0 S 1 S 2 S 3 S 4 S 5 S 6 S 7
2.
3.
4. جای خالی ! " # $ % & " ( ) * + , - . /
5. 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
6.
7.
8.
9.
آ. @ آ ب سی دی E اف جی اچ من جی ک L م ن O
ب. پ س آر اس تی U V دبلیو ایکس Y ز [ \ ]
سی.
دی
E. آ ب ج د ه f g ساعت من j ک ل متر n o
اف. پ q r س تی تو v w ایکس y z خروج DEL

در رایانه هایی که حداقل واحد آدرس پذیر حافظه یک کلمه 36 بیتی بود، ابتدا از کاراکترهای 6 بیتی استفاده می شد (1 کلمه = 6 کاراکتر). پس از انتقال به ASCII در چنین رایانه هایی، آنها شروع به قرار دادن 5 کاراکتر هفت بیتی در یک کلمه کردند (1 بیت اضافی باقی ماند)، یا 4 کاراکتر نه بیتی.

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

مقالات مرتبط برتر