IN THE NAME OF GOD

Download Report

Transcript IN THE NAME OF GOD

‫ چيست ؟‬Unicode
1
‫يونيکد چيست؟‬
‫• يونيکد استانداردي است که با استفاده از آن ميتوان براي تمامي‬
‫زبانهاي زنده و مرده (مثل زبانهاي باستاني ) دنيا ‪ ،‬يک حرف (کاراکتر)‬
‫متناظر ايجاد کرد ‪.‬‬
‫• با استفاده از يونيکد يک برنامه نويس قادر است براي يک زبان يا يک‬
‫لهجه خاص ‪ ،‬يک فونت ايجاد کند‪ ،‬بدون اينکه براي اين کار ‪ ،‬حروف (‬
‫کاراکترهاي ) زبان يا لهجه مورد نظرش را ‪ ،‬در جاي مربوط به يک لهجه‬
‫يا زبان ديگر رونوشت ( کپي ) کند ‪.‬‬
‫‪2‬‬
‫• مزيت اين روش آن است که هر” ‪ glyph‬گليف ” يک کد مخصوص و انحصاري‬
‫دارد که به غير خود آن گليف هيچ گليف ديگري اجازه استفاده از آن را ندارد ‪.‬‬
‫( به شکل ظاهري حروف گليف گفته ميشود ‪ ،‬اين شکل ميتواند هندس ي – براي زبان هاي‬
‫باستاني – يا يک عالمت نقاش ي شده – مثل زبان هيروگليف مصر ‪ -‬يا به شکل عدد – يا‬
‫به شکل هر حرف ديگري باشد )‬
‫• اين کار باعث جلوگيري از دوبار تکرار شدن يک حرف ميشود‪.‬‬
‫• همچنين باعث مي شود ‪ ،‬گليف ( يا حرف يا کاراکتر ) مورد نظر به سادگي قابل‬
‫تشخيص باشد ‪ ،‬مثال کد ‪ 0041‬متعلق به حرف ‪ A‬انگليس ي است ‪ ،‬و ساير‬
‫کاراکترها کدهاي مخصوص به خود را دارند ‪.‬‬
‫‪3‬‬
‫‪Unicode vs. Non-Unicode‬‬
‫• ‪:)Non-Unicode( MARC-8‬‬
‫– فضاي ‪ 8‬بيتي براي هر کاراکتر‬
‫– حداکثر ‪ 256‬کاراکتر‬
‫– ‪ 128‬تا داراي کد اسکي هستند‪.‬‬
‫• ‪:)Unicode( UTF-8‬‬
‫– افزايش فضا به ‪ 16‬بيت‬
‫– افزايش تعداد کاراکترهاي قابل کددهي از ‪ 256‬به ‪! 65536‬‬
‫– فضا به ميزان کافي براي تعريف گليفهاي جديد وجود دارد‪.‬‬
‫بلوکهاي يونيکد‬
‫• در يونيکد براي اينکه کاراکترهاي زبانهاي يک شکل را ( مثل فارس ي و عربي ) دوبار تکرار نکنند‪ ،‬از‬
‫يک ساختار بلوک بندي شده استفاده کردهاند‪.‬‬
‫• اين ساختار از بزرگ شدن يونيکد جلوگيري مي کنند‪.‬‬
‫• هر زبان کاراکترهاي غيرمشترک را به بلوک کاراکترها اضافه مي کند‪.‬‬
‫• در مثال فارس ي و عربي کاراکترهاي مشابه تکرار نمي شوند و از يک کد مشترک هر دو زبان استفاده‬
‫مي کنند‪.‬‬
‫• نکته‪ :‬در يونيکد هيچ بلوک مشخص ي براي زبان فارس ي موجود نيست و حروف فارس ي در بلوک‬
‫عربي جاي گرفتهاند‪.‬‬
‫‪5‬‬
:‫مثال‬
Basic Latin
: 0000..007F;
Arabic
: 0600..06FF;
Arrows
: 2190..21FF;
Mathematical Operators : 2200..22FF;
…
•
•
•
•
•
‫مثال‪:‬‬
‫آيا يونيکد فونت است؟‬
‫• يوني کد فونت نيست‪.‬‬
‫• يونيکد يک استاندارد است و فونتهايي که پياده سازي ميشوند ميتوانند با‬
‫اين استاندارد سازگار باشند و يا نباشند‪.‬‬
‫• سازگاري يک فونت با يونيکد به آن معني است که آن فونت خاص ‪ ،‬هنگام‬
‫پياده سازي گليف ها‪ ،‬هر گليف را دقيقا سر جاي خود قرار بدهد ‪.‬‬
‫‪8‬‬
‫• يونيکد يک استاندارد است و داراي نسخه هاي مختلف‪.‬‬
‫• در هر نسخه از يونيکد تعداد کاراکترهاي بيشتري ( که از قبل در استاندارد‪ ،‬با توجه به زبانهاي‬
‫مختلف تعريف شده بودند ) به محدوده کاراکترهاي ايجاد شده ميپيوندند‬
‫• مثال در نسخه ‪ 6‬بعد گليفهاي زبانهاي باستاني ( ايراني ) هم به جمع گليفهاي ايجاد شده‬
‫اضافه ميشوند ‪.‬‬
‫• براي نمونه فونت ‪ Arial‬که در ويندوز هست فونتي با حجم بيشتر از ‪ 20‬مگابايت است که‬
‫تقريبا بيشتر حروف يونيکد که در نسخه پنج وجود دارد را در خود جا داده است ‪.‬‬
‫‪9‬‬
‫ساختار داخلي يونيکد‬
‫• در يونيکد ‪ ،‬هر گليف براي خود يک کد انحصاري دارد و فقط و تنها فقط همان‬
‫گليف مجاز به استفاده از آن فضا در بلوک مختص به خود است ‪.‬‬
‫• مث ال عدد ‪ 6‬فارس ي نمي تواند در محل عدد ‪ 6‬انگليس ي قرار بگيرد‬
‫• يکي از مهمترين داليل غيراستاندارد بودن فونتهاي فارس ي همين است‬
‫مثال‪:‬‬
‫استقالل از پلت فرم‬
‫• يونيکد يک استاندارد است و وابسته به هيچ پلت فرم سخت افزاري و يا نرم‬
‫افزاري نيست‪.‬‬
‫• يونيکد به هيچ محيط اجرايي وابسته نيست‪.‬‬
‫• فونتهاي يونيکد به ساختار صفحه کليد وابستگي ندارند و مهم نيست که شما‬
‫از چه آرايش ي براي تنظيم کاراکترهاي خودتان بر روي کيبورد استفاده کردهايد ‪.‬‬
‫• هر کاراکتر داراي يک کد انحصاري است و در بلوک مرتبط با خود قرار گرفته و‬
‫اين قضيه هيچ ارتباطي با آرايش صفحه کليد ندارد‪.‬‬
‫‪12‬‬
‫ارتباط با سيستم عامل‬
‫• کار کيبورد توليد يک کد به ازاي هر کاراکتر است‪.‬‬
‫• هر وقت روي کليدي را فشار مي دهيد‪ ،‬درايور کيبورد ( که معموال يک فايل ‪ dll‬است ‪،‬‬
‫مثل ‪ ) kbdfa.dll‬کد يونيکد معادل آن گليف خاص را توليد کرده و براي سيستم‬
‫عامل ارسال ميکند ‪.‬‬
‫• سيستم عامل بسته به کد دريافتي اقدام به نمايش و ثبت کليد ميکند ‪.‬‬
‫• براي اينکه شما بتوانيد يونيکد را فارس ي بنويسيد‪ ،‬اول بايد اين زبان را روي ويندوز يا هر‬
‫سيستم عامل ديگري فعال کنيد‪.‬‬
‫– با اين کار يک ‪ dll‬ايجاد ميشود که ترکيب چيدمان و کدهاي يونيکد را در خود قرار داده و‬
‫هنگامي که شما تايپ ميکنيد‪ ،‬بسته به چيدماني که براي آن تعريف شده ‪ ،‬کدهايي را توليد‬
‫ميکند ‪.‬‬
‫‪13‬‬
‫؟‬