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

مشكلة اللغة العربية مع Jframe ، رموز غريبة بدلا من حروف عربية!

بدأه مجلـد جديـد في 22 يناير 2009 · 21 رد · 8,785 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عملت برنامج باستخدام netbeans 6.1 ووضعت فيه jlabels و jmenuitems ووضعت داخلها كلام عربي وليس انجليزي

عملت compile & run عن طريق netbeans 6.1 و ظهرت الواجهة بشكل ممتاز :

post-73304-1232626514_thumb.png

اخذت الملف .java من مجلد المشروع project/src ونسخ/لصق على سطح المكتب ، عند عمل javac له تظهر التحذيرات التالية:

Main.java:69: warning: unmappable character for encoding Cp1252
		jMenu1.setText("┘à┘┘?");
							 ^
Main.java:71: warning: unmappable character for encoding Cp1252
		jMenuItem1.setText("┘?╪ز╪ص ┘à┘┘? ┘?┘è ╪د┘┘à╪»╪«┘╪د╪ز");
							 ^
Main.java:71: warning: unmappable character for encoding Cp1252
		jMenuItem1.setText("┘?╪ز╪ص ┘à┘┘? ┘?┘è ╪د┘┘à╪»╪«┘╪د╪ز");
										^
Main.java:71: warning: unmappable character for encoding Cp1252
		jMenuItem1.setText("┘?╪ز╪ص ┘à┘┘? ┘?┘è ╪د┘┘à╪»╪«┘╪د╪ز");
										   ^
Main.java:79: warning: unmappable character for encoding Cp1252
		jMenuItem2.setText("╪ص┘?╪╕ ╪د┘┘à╪«╪▒╪ش╪د╪ز ╪ذ╪د╪│┘à");
							   ^
Main.java:212: warning: unmappable character for encoding Cp1252
		if(p.equals("<╪╡┘?╪ص╪ر_╪د┘╪ز╪▒┘╪ز>")==true)
						 ^
Main.java:216: warning: unmappable character for encoding Cp1252
			if(p.equals("</╪╡┘?╪ص╪ر_╪د┘╪ز╪▒┘╪ز>")==true)
							  ^
7 warnings

وعند تشغيل البرنامج java يظهر بالشكل غريب جدا :

post-73304-1232626526_thumb.png

انا اريد ان اخذ الملف .java واعمل له javac & java في جهاز لا يتواجد فيه netbeans ، لكن الان هذا الامر غير ممكن بسبب ظهور الحروف العربية بهذه الرموز الغريبة :(

الرجاء المساعدة في اسرع وقت ممكن :(

#3

شكرا لك اخي asmnif على الرد

للاسف لم اجد حلا للمشكلة في الرابط :(

#4

أخي مجلد جديد ,, هناك ترميز يسمى ب Unicode يونكود , هذا الترميز يشمل اللغة العربية ,,,,

مثلا :: كلمة ( ملف ) يتم ترجمتها إلى \u0645\u0644\u0641

حرف ::  م :: يساوي :: \u0645 ::
حرف ::  ل :: يساوي :: \u0644 ::
حرف :: ف :: يساوي :: u0641\

استخدم هذا الترميز في كتابة اللغة العربية

تم تعديل هذه المشاركة بواسطة MKSoft في 22 يناير 2009 في 22:22

#5

شكرا لك اخي MKSoft ، بالفعل طلعت كلمة "ملف" بشكل صحيح! :D

هل الجدول التالي هو الجدول الذي يجب ان استخدمه؟

http://en.wikipedia.org/wiki/Arabic_alphabet#Primary_letters

الا توجد طريقة اكثر فعالية من استبدال كل حرف بارقام؟ خاصة وان هذه الطريقة غير مجدية اطلاقا للبرنامج الكبيرة.

تم تعديل هذه المشاركة بواسطة مجلـد جديـد في 22 يناير 2009 في 23:50

#6

أخي مجلد جديد ,,, هذه هي الطريقة الوحيدة و المناسبة لكتابة اللغة العربية , والأمر ليس بالصعوبة التي تحدثت عنها أبدا , حيث بإمكانك تصميم حزمة معينة تقوم بعملية تحويل الحروف العربية لترميز اليونيكود .

اليك البرنامج التالي سيسهل عليك الكثير , حيث اني قمت بتصميمه , بحيث انه يحول الحروف العربية إلى رموز Unicode , فقط ما عليك إلا نسخ هذا الترميز الناتج من عملية التحويل و ذلك باستخدام Ctrl+c و عمل لصق له في داخل الكود و ذلك بالضغط على Ctrl+p ...

563485163.jpg

726365142.jpg

البرنامج المرفق ::

AUC.rar

تم تعديل هذه المشاركة بواسطة MKSoft في 23 يناير 2009 في 03:29

#7

شكرا لك اخي MKsoft وبارك الله فيك

#8

جزاك الله خير MKSoft

مدونتي

برمجة وما يتبعها

#9

اسهل حل

انك تقوم بتحويل اعدادات جهازك الى اللغه العربيه

من لوحة التحكم ..

الحل الآخر بان تقوم باستعمال UTF-8 في ملف الاعدادات config للنت بينز

حاول اخير غير اكيد ان تقوم باستعمال property

#10
MKSoft كتب:
أخي مجلد جديد ,,, هذه هي الطريقة الوحيدة و المناسبة لكتابة اللغة العربية , والأمر ليس بالصعوبة التي تحدثت عنها أبدا , حيث بإمكانك تصميم حزمة معينة تقوم بعملية تحويل الحروف العربية لترميز اليونيكود .

اليك البرنامج التالي سيسهل عليك الكثير , حيث اني قمت بتصميمه , بحيث انه يحول الحروف العربية إلى رموز Unicode , فقط ما عليك إلا نسخ هذا الترميز الناتج من عملية التحويل و ذلك باستخدام Ctrl+c و عمل لصق له في داخل الكود و ذلك بالضغط على Ctrl+p ...

563485163.jpg

726365142.jpg

البرنامج المرفق ::

AUC.rar

شكرا أخي الكريم

أنا الآن على نظام التشغيل أوبونتو و لم أستطع إستعمال برنامجك.

سأجربة لاحقا على ويندوز.

#11
JVM كتب:
شكرا أخي الكريم

أنا الآن على نظام التشغيل أوبونتو و لم أستطع إستعمال برنامجك.

سأجربة لاحقا على ويندوز.

السلام عليكم أخي ::

ماهو نظام تشغيل اوبنتو ؟؟ هل OS/2

و إن كان كذلك فلماذا لا يعمل البرنامج , حيث انه مصمم على لغة الجافا المعروفة بأنها Portable ( متنقلة ) , هل عندك تفسير ؟؟

#12
اقتباس
ماهو نظام تشغيل اوبنتو ؟؟ هل OS/2

و إن كان كذلك فلماذا لا يعمل البرنامج , حيث انه مصمم على لغة الجافا المعروفة بأنها Portable ( متنقلة ) , هل عندك تفسير ؟؟

نعم اخي هو أحدي توزيعات اللينوكس وأشهرها وتعمل عليه الجافا أسرع من الويندوز

ولكن لكل نظام تشغيل يونيكود غير الآخر

قابلتني نفسي المشكلة أنه لا يخرج الناتج المطلوب معي ولكني سأبحث عن اليونيكود الخاص باللينوكس وسأعدل برنامجك ولكن ليس الآن

مدونتي

برمجة وما يتبعها

#13

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

أوبنتو مبني على لينكس و هو من أشهر نسخ لينكس حالياً

www.ubuntu.com

أخي JVM ما هي رسالة الخطأ التي تظهر لك؟

تم تعديل هذه المشاركة بواسطة محمد سمير في 3 فبراير 2009 في 18:26

سبحانك اللهم و بحمدك ، أشهد أن لا إله إلا أنت ، أستغفرك ربي و أتوب إليك

مدونتي

http://www.facebook.com/brmjt

#14

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

اقتباس
قابلتني نفسي المشكلة أنه لا يخرج الناتج المطلوب معي ولكني سأبحث عن اليونيكود الخاص باللينوكس وسأعدل برنامجك ولكن ليس الآن

يوجد فقط يونيكود واحد، والهيئة المتخصصة فيه مستقلة عن أي نظام تشغيل http://unicode.org

وهذا تعريف اليونيكود حسب الموقع أعلاه

اقتباس
Unicode provides a unique number for every character, no matter what the platform, no matter what the program, no matter what the language. The Unicode Standard has been adopted by such industry leaders as Apple, HP, IBM, JustSystems, Microsoft, Oracle, SAP, Sun, Sybase, Unisys and many others. Unicode is required by modern standards such as XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML, etc., and is the official way to implement ISO/IEC 10646. It is supported in many operating systems, all modern browsers, and many other products. The emergence of the Unicode Standard, and the availability of tools supporting it, are among the most significant recent global software technology trends.

#15
اقتباس
يوجد فقط يونيكود واحد، والهيئة المتخصصة فيه مستقلة عن أي نظام تشغيل http://unicode.org

وهذا تعريف اليونيكود حسب الموقع أعلاه

حسناً

ما هو تفسيرك لهذا؟؟

مدونتي

برمجة وما يتبعها

#16

abuoof كتب:
حسناً

ما هو تفسيرك لهذا؟؟

تفسير ماذا؟؟؟

جربت البرنامج في Debian etch Linux، وهو يعمل بشكل ممتاز

الصورة المرفقة تدل على أن البرنامج يعمل

post-181903-1233691973_thumb.png

تم تعديل هذه المشاركة بواسطة herch في 3 فبراير 2009 في 23:14

#17
اقتباس
قابلتني نفسي المشكلة أنه لا يخرج الناتج المطلوب معي ولكني سأبحث عن اليونيكود الخاص باللينوكس وسأعدل برنامجك ولكن ليس الآن

أخي JVM :: كما قال اخونا herch , ان شيفرة Unicode مستقلة عن أنظمة التشغيل المحتلفة , ولذلك ليس لها علاقة مباشرة مع نظام التشغيل الي تعمل عليه.

بالمناسبة يا إخواني :

للمرة الأولى التي أسمع بهذا النظام المسمى ubuntu ,

من هي الشركة المطورة لهذا النظام ؟

وهل توفر الدعم الكامل للغة الجافا ؟

هل هو مجاني ؟

وماهي متطلبات الحاسوب الجيد لتشغيل هذا النظام ( Requirements ) ؟

#18

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

ubuntu هو نظام تشغيل gnu/linux يرتكز على نظام Debian

لمعلومات أكثر زر موقعهم http://www.ubuntu.com

بالنسبة لدعم java، فيمكنك تحميل ملف التثبيت الخاص بلينوكس من موقع sun

#19

شكرا أخي herch على الإفادة , وبارك الله فيك.

#20

أنا بالنسبه لي لا مشكله من ناحية النظام لأني منزل وندوز وأوبونتو لينكس

بس أشوف ان الطريقه متعبه اني ادخل اليونيكود لكل حرف , مثلاً لو عندي نص كامل مثل الhelp واريد ان اكتبه بالعربي , بضطر اني ادخل اليونيكود لكل حرف وهذا تعذيب :(

ممكن طريقه أسهل؟

أخ MKsoft ممكن تعطيني السورس حق الكلاس Alpha? إذا ماكان عندك مانع :)

أعتقد كان أفضل لوكنت خليت الدوال Static وكنت أنشأت دالة setText بدلاً من أخذ النص من دالة الconstructor فبذلك مابنضطر إننا ننشئ أوبجكت جديد من الكلاس Alpha في كل مره نضغط فيها زر التحويل :)

ماعدا ذلك فبرنامجك رائع ومفيد 100% :)

وجزاك الله ألف خير أخي الكريم :)

تم تعديل هذه المشاركة بواسطة M.Allaw في 6 مارس 2009 في 07:57


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#21
M.Allaw كتب:
أنا بالنسبه لي لا مشكله من ناحية النظام لأني منزل وندوز وأوبونتو لينكس

بس أشوف ان الطريقه متعبه اني ادخل اليونيكود لكل حرف , مثلاً لو عندي نص كامل مثل الhelp واريد ان اكتبه بالعربي , بضطر اني ادخل اليونيكود لكل حرف وهذا تعذيب :(

ممكن طريقه أسهل؟

أخ MKsoft ممكن تعطيني السورس حق الكلاس Alpha? إذا ماكان عندك مانع :)

أعتقد كان أفضل لوكنت خليت الدوال Static وكنت أنشأت دالة setText بدلاً من أخذ النص من دالة الconstructor فبذلك مابنضطر إننا ننشئ أوبجكت جديد من الكلاس Alpha في كل مره نضغط فيها زر التحويل :)

ماعدا ذلك فبرنامجك رائع ومفيد 100% :)

وجزاك الله ألف خير أخي الكريم :)

السلام عليكم اخ M.Allaw , أعتذر على تـاخري على الرد على و ذلك بسبب مشاكل فنية و الله أعلم .

اولا : كلامك صحيح , كان من الأأفضل ان اجعل الدوال مشتركة اي static .

ثانيا : بالنسبة ل source code الخاص ب كلاس apha , فحقيقة حدثت معي مشكلة محزنة في Hard Disk و ولقد ارسلته للصيانة , لكن لا أدري هل سيعود للعمل مرة اخرى أو لا :S :S :S

على العموم اخ M.Allaw , ان كنت تمتلك برنامج DJCompiler ( اظن ان اسمه كما ورد ) , فبإمكانك فك ملف class , ليعطيك source code.

تحياتي.

#22

أشكرك أخي العزيز :)

أنا حملت هذا الديكومبايلر , بس على قدر ماهو مفيد يخوفك

يعني أنا لو اشتغلت على الجافا برامجي كلها بتكون بالمجان لمن هب ودب :(

ايش الحل؟ هل توجد طريقه لتشفير الكلاسات؟

تم تعديل هذه المشاركة بواسطة M.Allaw في 16 مارس 2009 في 00:39


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…