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

مشكلة باستخدام Inputstreamreader

بدأه .S.T.A.L.K.E.R في 30 سبتمبر 2009 · 6 رد · 690 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

انا استخدم InputStreamReader حيث ال Encoding المستخدم هو UTF-8

ظهرت مشكلة غريبة بعض الشيء

و هي اذا وجد حرف ال " ف " في النص اعطى java.io.UTFDataFormatException: invalid byte 111111

حيث تتم القرأة كالتالي :

reader.read(srcBuf, 0, srcBuf.length);

فهل من حل

فقط على حرف الفاء "ف"

:S :S :S :S :S :S :S :S :S :S

يا ناس جلطتني

#2

ممكن تحط الكود كامل أو الكلاس او البرنامج

لك جزيل الشكر اخي

#3

لا يمكننا المساعدة بدو الكود يا محمد

لأن المشكلة نفسها غير منطقية :(

تحياتي

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

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

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

728x90.png

#4

لا يمكننا المساعدة بدو الكود يا محمد

لأن المشكلة نفسها غير منطقية :(

تحياتي

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

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

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

728x90.png

#5

يا اخوان المشكلة ليست في باقي الكود.

المشكلة في هذا السطر فقط

اشرح لكم الموضوع:

استقبل بيانات String و يتم قرأتها as UTF-8

فاتضح ان الحرف "ف" فقط لا يعطي نتيجة صحيحة

و المشكلة اننا لا نستطيع الاستغناء عن InputStreamReader

#6

يا محمد هل ترى أن مشكلة كهذه منطقية

على الأغلب لا

فإما أن يكون هناك خطأ في الشيفرة bug

أو يكون هناك خطأ في jdk أي bug لكن على مستوى أعلى

في الحالتين لن نستطيع المساعدة كثيراً

مالم نرى الشيفرة

أتفهم لو أنك لا تريد وضع الشيفرة لكن لا يمكنني المساعدة

تحياتي

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

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

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

728x90.png

#7

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

لكن الكود قد لا يكون مفهوم بالنسبة اليكم

لانه جزء من برنامج

و هذا هو

:)

شكرا يا اخوان على تعاونكم

 private final int peek(int pos) throws IOException {

		while (pos >= peekCount) {


			int nw;

			if (srcBuf.length <= 1) {
				nw = reader.read();
			} else if (srcPos < srcCount) {
				nw = srcBuf[srcPos++];
			} else {

			  srcCount = reader.read(srcBuf, 0, srcBuf.length);

				if (srcCount <= 0) {
					nw = -1;
				} else {
					nw = srcBuf[0];
				}

				srcPos = 1;
			}

			if (nw == '\r') {
				wasCR = true;
				peek[peekCount++] = '\n';
			} else {
				if (nw == '\n') {
					if (!wasCR) {
						peek[peekCount++] = '\n';
					}
				} else {
					peek[peekCount++] = nw;
				}

				wasCR = false;
			}
		}

		return peek[pos];
	}

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