دوشنبه ۱۴ مرداد ۱۳۹۲ ارسال شده توسط prodo
یونیکد یک استاندارد جهانی هست که به هر کاراکتر یک عدد منحصر به فرد (`code point`) نسبت میده. بنابراین در هر کاربردی که مبتنی بر یونیکد باشه، متنها در همهی دنیا به یک شکل دیده میشن.
در سیستمهای قدیمی کاراکتری مثلاً وقتی شما از ۱۲۲۰ برای کاراکتری در زبان فارسی استفاده میکردین، این ۱۲۲۰ بستگی به فونت مورد استفادهی شما داشت. یعنی اگه فونت رو عوض میکردین این ۱۲۲۰ تبدیل میشد به کاراکتری در یک زبان دیگه. اما در یونیکد ۱۲۲۰ فقط و فقط مربوط به یه کاراکتر خاص هست و با عوض کردن فونت (در صورتی که روش ذخیرهسازی و خوندن مبتنی بر یونیکد باشه) تغییر نمیکنه. در بدترین حالت به دلیل اینکه نمایش یک کاراکتر در فونت در دسترس نیست به جاش یک علامت سوال یا مربع نمایش داده میشه.
بنابراین یونیکد یه جدول با دو ستون هست. ستون اول کاراکتر مورد نظر و ستون دوم یک عدد منحصر به فرد که کد یونیکد اون عدد هست. برای مثال کد یونیکد حرف «س» `U+633H` هست.
دقت کنین که یونیکد شامل هیچ پیادهسازی خاصی نیست و برای استفاده از این استاندارد لازمه که پیادهسازیهایی مثل `utf-8` استفاده بشه.
[سایت رسمی یونیکد][1]
[1]: http://unicode.org/
دوشنبه ۱۴ مرداد ۱۳۹۲ ویرایش شده توسط prodo
یونیکد یک استاندارد جهانی هست که به هر کاراکتر یک عدد منحصر به فرد (`code point`) نسبت میده. بنابراین در هر کاربردی که مبتنی بر یونیکد باشه، متنها در همهی دنیا به یک شکل دیده میشن.
در سیستمهای قدیمی کاراکتری [ابتدا این مطلب رو عوض میکردین این ۱۲۲۰ تبدیل میشد به کاراکتری در یک زبان دیگه. اما در یونیکد ۱۲۲۰ فقط و فقط مربوط به یه کاراکتر خاص هست و با عوض کردن فونت (در در مورد یونیکد ببینین][1]
`utf-32` یکی از پیادهسازیهای یونیکد هست که در حقیقت سادهترین اونها هم هست. در پیادهسازی خاصی نیست و برای استفاده از این استاندارد لازمه که پیادهسازیهایی مثل `utf-8` استفاده بشه.
[سایت رسمی یونیکد][1]
`utf-32` هر کاراکتر برای ذخیرهسازی دقیقاً از همون مقدار استاندارد یونیکد استفاده میکنه. برای این ذخیرهسازی از ۳۲ بیت استفاده میشه.
بنابراین یونیکد یه جدول با دو ستون هست. ستون اول کاراکتر مورد نظر و ستون دوم یک عدد منحصر به فرد که کد یونیکد اون عدد هست. برای مثال کد یونیکد حرف مثلاً وقتی شما از ۱۲۲۰ برای کاراکتری در زبان فارسی استفاده میکردین، این ۱۲۲۰ بستگی به فونت مورد استفادهی شما داشت. یعنی اگه فونت برای ذخیرهسازی کاراکتر «س» که معادل یونیکد `U+633H` هست.
دقت کنین که یونیکد شامل هیچ یا مربع نمایش داده `U+1587` هست همین عدد ۱۲۵۷ مستقیماً ذخیره میشه
00000000-00000000-00000110-00110011
مشکل این روش ذخیرهسازی و خوندن مبتنی بر یونیکد باشه) تغییر نمیکنه. در بدترین حالت به دلیل اینکه نمایش یک کاراکتر در فونت در دسترس نیست به جاش یک علامت سوال اینه که شما برای ذخیرهسازی هر کاراکتر از ۳۲ بیت استفاده میکنین در صورتی که نیازی به این همه حافظهی اضافی نیست. شاید یک متنی فقط از کاراکترهای یونیکدی استفاده میکرد که در محدودهی اسکی هستند و بنابراین نیاز به ۸ بیت برای ذخیرهسازی هر کاراکتر بیشتر نباشه
[1]: http://unicode.org/http://uili.ir/2032/%DB%8C%D9%88%D9%86%DB%8C%DA%A9%D8%AF-%DA%86%DB%8C%D8%B3%D8%AA%D8%9F