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

مشكلة في قراءة اللغة العربية داخل Jtextarea

بدأه realahmed8 في 5 يونيو 2008 · 16 رد · 1,929 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم..

هلا انا عملت برنامج فيه (JButton , JTextArea) ،ولما بتضغط على الزر بتطلع نافذة JFileChooser بختار منها أي ملف تكست و بيضعه في داخل JTextArea ..

و لكن المشكلة لو كان الكلام باللغة العربية في داخل ملف التكست فإنه يظهر رموز بدل الأحرف العربية..

أرجو المساعدة ، و شكرا لكم ..

#2

قمنا سابقاً بعمل مشروع جماعي

اسمه HTMLEditor

يمكنك البحث عنه

وقد أخذنا في عين الاعتبار هذا الموضوع

بصراحة نسيت ماكنا نقوم به

كل ما أتذكره أن الأمر له علاقة بدالة read والتشفير مثلاً UTF

لكن يمكنك مراجعة الموضوع

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3

وجدت الموضوع .. ولكن للأسف لم يفدني الكود بشيء..

بالنسبة للتشفير انا استخدمت UTF 8 في حفظ ملف التكست برضو ما جاب نتيجة..

أنا بقدر أكتب عربي في البرنامج ، المشكلة لما أفتح ملف تكست عربي بيقراه رموز غريبة..

#4

تلاحظ صديقي في لغات البرمجة لـميكروسوفت لا تعاني هذه المصيبة متل السي شارب مثلا لانهم يعملون على بيئات متقاربة من بعض

يعني نفس الشروع الذي تتكلم عنه بالسي شارب عبارة عن خاصية openFileDialog بكل بساطة تفتح اي ملف txt بعد ما تعمل filter طبعا للاحقات

التي سوف تستخدمها ويفتح لك النص كما هو عربي او انكليزي او صيني حتى

هنا ميكروسفت وبيائاتها وطبيعت الوندوز الذي تستخدمه اذا كان معرب او غير معرب الى ما هنالك

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

تستخدم نوع من البسملات(تعليمات) التي تستخدم بصفحات الويب وفي برامج تصميم الصفحات كالدريم ويفر او الفرونت بيج حتى تضهر الكتابة كما هي

اضن ان مشكلتك هي يجب ان توضع تعليمة معينة تخبر بها البيئة بانك تريد الشي نفسه الذي تريده دون تشفير

ابحث عنها في جوجل اذا لم يوصلها احد اليك هنا

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

الله معك..

#5

قم بعرض شيفرتك

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

بإمكانك تجريب هذه الطريقة

StringBuffer text = new StringBuffer(textFromFile);
for (int i = 0; i < text.length(); i++) {
	byte b = (byte) text.charAt(i);
	if (b < 0) {
		text.deleteCharAt(i);
		if(i >= text.length())continue;
		byte b2 = (byte) text.charAt(i);
		int bi = ( (256 + b) - 192) * 64 + (256 + b2 - 128);
		char ch = (char) bi;
		text.setCharAt(i, ch);
	}else if(b == 13){
		text.deleteCharAt(i);
	}else if(b == 10){
		text.setCharAt(i,'\n');
	}
}
String currentText = text.toString();

تم تعديل هذه المشاركة بواسطة Essam-ag في 6 يونيو 2008 في 16:31

ready to do full students projects

digitalscenter@hotmail.com

+966530357742

#7

ما الجديد اخي عصاام

لو انك شرحت اين البسملة مثلا ...لكي يستطيع صديقنا حل المشكلة

الله معك..

#8

اخي عصام أنا حولت الكود لميثود و استدعيتها في البرنامج ولكن للأسف ما تغير اي شيء..

#9

لاحول ولا قوة الا بالله

كاتب موضوع كامل ومش مرفق الكود !

يااخي ارفق الكود خلنا نشوف خلنا نتمقل خلنا نعرف وين المـشكله ( واعتقد ان المشكله براسي )

#10

المشكلة أني طلبت ذلك مسبقاً

وانتظرت أن يرفق الشيفرة

لهذا تجاهلت الموضوع

لكن هي مشكلته وهو أدرى بما يمكن أن يفيده

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#11

اخي لم أرفق الكود لأن البرنامج عبارة عن مشروع لمادة في الجامعة و كثير من الطلاب في المادة يرتاد هذا المنتدى لذلك ترددت في ارفاق الكود حتى لا تحدث مشاكل..

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

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

lastmodified.rar

#12

اخبرنا ما هي اعدادات اللغة في جهازك ...من لوحة لتحكم ...

هل وقت تنصيب الوندوز اخترت اضافة للغات اخرى غير العربية ..هذا واذا كنت مختار العربية..لكن اضن انك مختارها لانك اخبرتنا بانك تكتب عربي

عجيب ...وممكن انه ليس بعجيب ..لانني .قلت لك البيئة تلعب دورها

الله معك..

#13

السلام عليكم

أخي الفاضل realahmed8 أنا أيضا كنت لديا هذه المشكلة و الحمد لله استطعت حلها عن طريق الميثود

String kk=new String(r.getString(1).getBytes(),"Cp1252");

جربها و أخبرنا بالنتيجة لان ضروري تعرف الحل لان أكيد رح تواجه هذه المشكلة مرة أخرى

* طبعا اللي باللون الاحمر هي الداتا تبعت حضرتك اللي قرأتها من الملف و kk هي الداتا بعد التشفير

حياكم الله

#14
shado كتب:

اخبرنا ما هي اعدادات اللغة في جهازك ...من لوحة لتحكم ...

هل وقت تنصيب الوندوز اخترت اضافة للغات اخرى غير العربية ..هذا واذا كنت مختار العربية..لكن اضن انك مختارها لانك اخبرتنا بانك تكتب عربي

عجيب ...وممكن انه ليس بعجيب ..لانني .قلت لك البيئة تلعب دورها

الله معك..

انا دايما بنزل اللغات الآسيوية بجانب اللغة العربية و الانجليزية .. ولكن لا اعتقد ان لذلك تأثير..

اعتقد ان المشكلة في الويندوز عندي .. و كذلك اذا كان تشفير الملف ليس UTF فإنه ايضا لا يعمل على أي بيئة ..

#15

شكرا لك أخي jfriend ولكن لم اعرف كيف استعمل الميثود داخل البرنامج !؟

و هل هذه الميثود تستطيع التعامل مع جميع ملفات التكست بكل أنواع الencoding أم فقط ل UTF ?

#16

صديقي احببت ان اسالك عن لغات النظام فقط من اجل تحديد المشكلة لعلها بالنظام مثلا

لان المشكلة لم تضهر فقط عندك ..بل ضهرت عندي وهي حتى اسماء الازرار باحرف الضاط (ظ؟ظ|؟ظظ؟؟|\\؟؟) بما اننا مشهورين نحن العرب بلغتنا العربية بانها لغة الضاد ... ولكن ما السر في الكومبيوترات التي في جامعتك...اهي مسحورة ام ماذا

اذا السر ليس بكود معين او اي شي ...

شئ مهم ان نلفت النظر الى اشياء ليست في البال ولا في الخاطر

بما انه ما ضهر عندك ضهر عندي ...فمشكلت نضامي نفس مشكلت نظامك ...ولكن ما السر في في انظمت جامعتك ...

هل كانت الاازرار هكذا ..عندك..

d24c5818e6.jpg

ممكن لانه كتبت بشكل مباشر باللغة العربية

ولم تستخدم الاسكي "\u0639" مثلا لا ادري اي حرف هذا لانه من اختراعي الان ..

حاليا لست مستعد لكي احل المشكلة لاني مشغول بعض الشي بامتحاناتي ...

الله معك..

تم تعديل هذه المشاركة بواسطة shado في 8 يونيو 2008 في 03:02

#17

realahmed8حياك الله أخي,

اليك هذا المثال البسيط

BufferedReader x= new BufferedReader(new FileReader("D:/site/stdCount.txt"));
String s=x.readLine();
String kk=new String(s.getBytes(),"Cp1252");
JTextArea t=new JTextArea();
t.setText(kk);

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