کامپیوتربرنامه نویسی

UTF-8 - رمزگذاری کاراکتر

یونیکد پشتیبانی از تقریبا همه شخصیت ها موجود است. بهترین شکل پشتیبانی می کند مجموعه کاراکتر یونیکد UTF-8 را پشتیبانی می کند. این پشتیبانی از سازگاری با ASCII، مقاومت در برابر اعوجاج از داده ها، بهره وری و سهولت پردازش. اما چیزهایی اول اول.

ورقه برنامه نویسی

کامپیوترها کار نه تنها به عنوان اعداد اشیاء انتزاعی ریاضی، و همچنین به عنوان ترکیبی از واحد های ذخیره سازی و مدیریت داده های اندازه ثابت - بایت و کلمات 32 بیتی. استاندارد رمزگذاری باید این را به حساب در تعیین نحوه ارائه را تعدادی از شخصیت های.

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

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

اصل nenalozheniya

هر یک از رمزگذاری اشکال یونیکد در کف و غیر نسبی توسعه یافته است. به عنوان مثال، ویندوز-932 به شکل شخصیت های یک یا دو بایت کد است. طول دنباله بستگی به اولین بایت، به طوری که مقادیر بایت پیشرو در مجموعه ای از دو بایت و جدا بایت. با این حال، ارزش یک بایت و انتهایی توالی بایت ممکن است همزمان. این به این معنی که برای مثال جستجو شخصیت D (کد 44) می توانید آن را پیدا اشتباه وارد بخش دوم دنباله ای از دو بایت شخصیت "D" (کد 84 44). برای پیدا کردن که توالی درست، این برنامه باید به حساب بایت قبلی.

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

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

یکی دیگر از جنبه nonintersection سیستم های کد گذاری یونیکد است که هر یک از شخصیت دارای یک مرز کاملا مشخص است. این حذف نیاز به اسکن تعداد نامحدود علامت های قبلی است. این ویژگی است که گاهی اوقات پشتیبانی می کند خود مشکلات ناسازگار بودن نامیده می شود. اعوجاج از واحد کد اعوجاج از تنها یک شخصیت معرفی، و شخصیت های اطراف هنوز دست نخورده است. در 8 بیتی تبدیل فرمت، اگر اشاره گر به بایت، با شروع با 10xxxxxx (در کد باینری) برای پیدا کردن شروع نماد برای یک تا سه انتقال معکوس مورد نیاز است.

ثبات

کنسرسیوم یونیکد به طور کامل پشتیبانی تمام 3 فرم سیستم های کد گذاری. این مهم است که به مخالفت با UTF-8 و یونیکد، به عنوان تمام فرمت های تبدیل نمی - به همان اندازه نوعی از تجسم از استاندارد رمزگذاری نویسه های یونیکد.

بایت جهت گیری

برای نشان UTF-32 شخصیت یک واحد کد 32 بیتی، که با کد یونیکد همزمان نیاز دارند. UTF-16 - یک تا دو واحد 16 بیتی. UTF-8 استفاده می کند تا به 4 بایت است.

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

طول متغیر

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

ASCII

کدهای ASCII رمزگذاری UTF-8 به طور کامل پشتیبانی (0x00-0x7F). این به این معنی که از کاراکترهای یونیکد U + 0000-U + 007F به بایت 0x00-0x7F UTF-8 تبدیل و در نتیجه غیر قابل تشخیص از ASCII تبدیل شده است. علاوه بر این، برای جلوگیری از ابهام، ارزش 0x00-0x7F هر در یک نمایش تک بایتی از کاراکترهای یونیکد استفاده نمی شود. به رمز علامت neideograficheskih غیر از ASCII، با استفاده از یک دنباله از دو بایت. علامت محدوده U + 0800-U + FFFF توسط سه بایت نشان داده، و کدهای اضافی با بیش از U + FFFF نیاز به چهار بایت است.

حوزه نرم افزار

رمزگذاری UTF-8 معمولا اولویت در پروتکل های HTML داده می شود، و مانند آن.

XML تبدیل شده است اولین استاندارد با پشتیبانی کامل از UTF-8 را پشتیبانی می کند. سازمان استاندارد نیز آن را توصیه. مشکل پشتیبانی در آدرس URL است که متفاوت از ASCII-شخصیت ها، زمانی که W3C کنسرسیوم و گروه مهندسی IETF به یک توافق در برنامه نویسی از تمام آمد حل و فصل شد آدرس URL به طور انحصاری در UTF-8.

سازگاری با ASCII تسهیل انتقال به نرم افزار جدید. با UTF-8 کار می کند بسیاری از ویرایشگرهای متن، از جمله JEdit، ایمکس، BBEdit، گرفتگی، و "دفترچه یادداشت" سیستم عامل ویندوز. هیچ نوع دیگری از یونیکد پشتیبانی می کند نمی تواند از چنین پشتیبانی از ابزار به رخ کشیدن.

برنامه نویسی است که آن را از دنباله ای از بایت تشکیل شده است. با UTF-8 رشته آسان است به کار در C و سایر زبان های برنامه نویسی. این تنها شکل را پشتیبانی می کند، سفارش می کند برچسب نیاز ندارد بایت BOM یا یک اعلان رمزگذاری در XML.

خود هماهنگ سازی

در یک محیط که با استفاده از علامت 8 بیتی از پردازش در مقایسه با سایر مجموعه کاراکتر چند بایت، UTF-8 دارای مزایای زیر است:

  • اولین توالی بایت کد شامل اطلاعات در مورد طول آن است. این بهره وری از جستجو مستقیم افزایش می دهد.
  • ساده پیدا کردن آغاز نماد به عنوان بایت شروع محدود به یک محدوده ثابت از ارزش ها است.
  • هیچ یک از مقادیر تقاطع بایت.

مقایسه مزایای

رمزگذاری UTF-8 جمع و جور است. اما هنگامی که برای کارکترهای شرق آسیا استفاده می شود (چینی، ژاپنی، کره ای، نوشتن چینی با استفاده از نشانه های) مورد استفاده قرار توالی 3 بایت. همچنین کدگذاری UTF-8 پایین تر از سایر اشکال برنامه نویسی سرعت پردازش است. خطوط مرتب سازی دودویی به همان نتیجه باینری مرتب سازی یونیکد تولید می کند.

طرح رمزگذاری کاراکتر

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

وقتی BOM در UTF-8 برچسب ویژگی تنها با ارجاع به استفاده از اشکال از برنامه نویسی محدود شده است. مشکلات در تعیین endian است UTF-8، به عنوان اندازه واحد رمزگذاری آن یک بایت است. با استفاده از BOM برای این شکل از برنامه نویسی است و نه لازم و نه توصیه می شود. BOM ممکن است در متن رخ می دهد از دیگر رمزگذاری با استفاده از علامت بایت سفارش و یا امضا برای کدگذاری UTF-8 تبدیل می شود. یک دنباله از 3 بایت EF BB 16 16 BF 16.

چگونه می توان رمزگذاری UTF-8

HTML برنامه نویسی UTF-8 است که با کد زیر را نصب کنید:

سر

متا http-equiv را = "نوع محتوای" محتوای = "text / html به. مجموعه کاراکتر UTF-8 =" ˃

در PHP کدگذاری UTF-8 با استفاده از تابع هدر () در ابتدای فایل بعد از تنظیم خطای خروجی مقدار سطح قرار است:

˂؟ پی اچ پی

که error_reporting (-1)؛

هدر ( "محتوا-نوع: متن / HTML؛ مجموعه کاراکتر = UTF-8 ')؛

برای اتصال به یک پایگاه داده MySQL کدگذاری UTF-8 قرار است:

˂؟ پی اچ پی

mysql_set_charset ( 'UTF8')؛

رمزگذاری CSS-فایل است شخصیت UTF-8 به شرح زیر است مشخص شده:

charset @ را "UTF-8"؛

هنگامی که شما ذخیره فایل های از همه نوع را انتخاب کنید کدگذاری UTF-8 بدون BOM، در غیر این صورت در سایت کار نخواهد کرد. برای این کار در DreamWeave نیاز به انتخاب آیتم منو "تغییرات - صفحه خواص - عنوان / رمزگذاری" برای تغییر را پشتیبانی می کند به UTF-8. به دنبال بارگذاری مجدد صفحه، حذف علامت چک از "امضا اتصال یونیکد (BOM)» و اعمال تغییرات. اگر هر متن در یک صفحه و یا در یک پایگاه داده نوع دیگری از برنامه نویسی معرفی شد، آن را دوباره وارد کنید و یا رمزگذاری مجدد لازم است. هنگامی که شما با عبارات منظم کار می کنند، لازم است تا استفاده از مدیفایر تو.

شما همچنین می توانید فایل را در UTF-8 را پشتیبانی می کند در "دفترچه یادداشت" از ویندوز را نجات دهد. پس از انتخاب آیتم منو "فایل - ذخیره به عنوان ..." برای نصب فرم لازم را پشتیبانی می کند و ذخیره فایل در UTF-8.

در یک ویرایشگر متن Notepad ++ را، اگر غیر از UTF-8 تنظیم، از طریق آیتم منو "تبدیل به UTF-8 بدون BOM» تغییر شخصیت و ذخیره در UTF-8.

هیچ بدیلی وجود ندارد

در بستر جهانی شدن، که در آن مرزهای سیاسی و زبانی پاک می شوند، مجموعه کاراکتر است که دارای ویژگی های محلی، استفاده از کمی هستند. یونیکد مجموعه کاراکتر واحد است که تمام localizations پشتیبانی می کند. UTF-8 - نمونه ای از اجرای صحیح یونیکد است که:

  • این پشتیبانی از طیف گسترده ای از ابزار، از جمله سازگاری با رمزگذاری ASCII؛
  • آن را به داده اعوجاج مقاوم است.
  • ساده و در درمان موثر.
  • پلت فرم مستقل است.

با ظهور بحث UTF-8 در مورد چه نوع پشتیبانی می کند و یا شخصیت مجموعه ای بهتر است، آن را بی معنی است.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 fa.birmiss.com. Theme powered by WordPress.