الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أسئلة حول الحروف العربية في اليونيكود Unicode .

بدأه Abdullah.Alshammeri في 25 يونيو 2008 · 4 رد · 3,949 مشاهدة · في هندسة البرمجيات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ,

لدي مشروع الان لدعم اللغة العربية في أحد المكتبات ,,

توقفت عند نقطة غريبة جدا !!!

الحروف العربية في جدول اليونيكود مقسمة الى جزئين كما هو واضح في الصورتيين ..

سندرس حرف السين .. على سبيل المثال .

المجموعة الأولى :

post-42837-1214401909_thumb.jpg

المجموعة الثانية :

post-42837-1214401918_thumb.jpg

بعد التجارب .. لاحظت أننا لا نستخدم المجموعة الثانية نهائيا ..!!!

مثال :

من المفترض أنه لو كان عندنا هذه الكلمة :

"سسس"

فانه يوجد ثلاثة حروف : "س" - "ـسـ" - " ـس"

ولكن المشكلة انه ليس كذلك ,

أي وحتى لو أننا في اليونيكود .. فاننا نتعامل مع حرف واحد وهو حرف س عادي صاحب الرقم x0633 .

طبقت هذا الكلام في الجافا .. وفي السي بلس .. وكلاهما يعتمد على UTF-16 .

مثال بالسي بلس :

#include<windows.h>
#include<iostream>
using namespace std;

int main()
{
	wchar_t test[]=L"سسس";
	// الان نريد طباعة كل حرف لوحده .. 
	for(int i=0;i<3;i++)
		wcout<<(int)test<<endl;

	  /*
	  المخرجات

		1587
		1587
		1587
	  */

	return 0;
}

وفي الجافا :

public class Main {

	public static void main(String[] args) {

		String s="سسس";
		for(int i=0;i<s.length();i++)
			System.out.println((int)s.charAt(i));

		/* Output:
		   1587
		   1587
		   1587
		 */

	}

}

السؤال .. لماذا يطبع نفس الرقم .. أليس من المفترض أنه يطبع ثلاثة ارقام مختلقة لثلاث حروف مختلفة .

اذن السؤال الان :

متى يتم استدعاء الحروف .. ـسـ , ـس .. هل هي خاصة فقط لتطبيقات GUI .. أتمنى يكون السؤال واضح ...

تم تعديل هذه المشاركة بواسطة الشمري في 25 يونيو 2008 في 16:56

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#2
[background=#0a9df5]
السلام عليكم.
wcahr_t text[]="سسس";
أعتقد انها تخزن داخل المصفوفة حرف حرف واذا كانت حرف حرف فإنها ستبقى س منفصلة
وعند استرجاعها كذلك حرف حرف.
لكن البرنامج الذي يكتبها او يقراها هو المسؤال عن ضبطها والله اعلم
[/background]
tvquran_6.gif

#3

وعليكم السلام ورحمة الله وبركاته .

أخي الشمري انت تخزن مصفوفة من الحرف "س" بغض النظر عن الـشكل الذي يظهر به الحرف , عليك ان تعلم انك لست المسؤول عن طريقة ظهور الحروف (في البداية - في وسط الكلمة - في نهاية الكلمة - معزول) بل يقوم بهذه المهمة الـfont rendering engine والذي يطبق بعض الشروط التي يتم وضعها اثناء صنع الخط (العربية والفارسية بالأخص) .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#4

في الوندوز خط اسمه LucidaConsole إذا عدلت فيه سوف تظهر لك الحروف العربية تستطيع استخدام FontCreator

لكن هناك أمران الأول: الحروف لها قياس مخصص من أجل ان تظر في نافذة الدوس اذا لم يكن القياس صحيح سيظهر لك مربع بدل الحرف.

الامر الثاني : يجب ان تعالج الحروف العربية في برنامجك.

هناك أمر في الدوس GRAFTABLE يفترض ان يساعد في ظهور الاحرف لكنه لا يعمل لا اعلم لماذ؟

والله اعلم عزوجل.

tvquran_6.gif

#5

بارك الله فيكم يا اخوان على هذه المعلومات ...

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

مواضيع مشابهة