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

حل لمشكلة العربي في قرأة صفحات الويب

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

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

هذا هو البرنامج

فحصته على اكثر من موقع و اشتغل بشكل جيد

لكن في بعد المواقع لا يظهر العربي، لكن لا يعطي exception على حروف معينة

حمل المشروع بالكامل : Connection4.rar

و الكود :

/*

import java.io.IOException;
import java.io.InputStream;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.*;

/**
 * @author Mohammad Ersan
 */
public class MainMidlet extends MIDlet implements CommandListener {

	private Display display;
	private Form form;
	private Command connectCMD, exitCMD;
	private HttpConnection connection;
	private TextField textField;
	private String systemEncoding = null;

	public MainMidlet() {
		display = Display.getDisplay(this);
		form = new Form("Test");

		connectCMD = new Command("Connect", Command.ITEM, 1);
		exitCMD = new Command("Exit", Command.EXIT, 2);
		form.addCommand(connectCMD);
		form.addCommand(exitCMD);
		form.setCommandListener(this);

		textField = new TextField("URL:", "", 500, TextField.URL);
		form.append(textField);

	}

	public void startApp() {
		display.setCurrent(form);
		systemEncoding = System.getProperty("microedition.encoding");
	}

	public void pauseApp() {
	}

	public void destroyApp(boolean unconditional) {
	}

	public void commandAction(Command c, Displayable d) {
		if (c == connectCMD) {
			startConnection();
		} else {
			notifyDestroyed();
		}
	}

	public void startConnection() {
		new Thread(new Runnable() {

			public void run() {

				try {
					String url = textField.getString();
					if (url == null || url.length() < 1) {
						return;
					}
					if (url.indexOf("http://") < 0) {
						url = "http://" + url;
					}
					textField.setString(url);

					connection = (HttpConnection) Connector.open(url);

					String pageEncoding = getEncoding(connection.getType());
					String pageHTML = parseURL(connection.openInputStream(), pageEncoding);

					form.append(pageHTML);


				} catch (IOException ex) {
					ex.printStackTrace();
				} finally {
					if (connection != null) {
						try {
							connection.close();
						} catch (IOException ex) {
							ex.printStackTrace();
						}
					}
				}

			}
		}).start();

	}

	private String getEncoding(String connectionType) {
		String encoding = null;
		if (connectionType != null && connectionType.length() > 0) {
			int x = connectionType.indexOf("charset");
			if (x > -1) {
				encoding = connectionType.substring(x + "charset".length() + 1, connectionType.length());
				encoding = encoding.trim();
			}
		}
		System.out.println("Page Encoding : " + encoding);
		return encoding;
	}

	private String parseURL(InputStream is, String encoding) throws IOException {
		String htmlPage = null;

		if (encoding != null && encoding.length() > 0) {
			byte[] b = new byte[1];
			StringBuffer sb = new StringBuffer();
			while ((is.read(b)) != -1) {
				sb.append(new String(b, encoding));
			}
			htmlPage = sb.toString();

		} else {
			if (systemEncoding != null && systemEncoding.length() > 0) {
				byte[] b = new byte[1];
				StringBuffer sb = new StringBuffer();
				while ((is.read(b)) != -1) {
					sb.append(new String(b, systemEncoding));
				}
				htmlPage = sb.toString();
			} else {
				int x;
				StringBuffer sb = new StringBuffer();
				while ((x = is.read()) != -1) {
					sb.append((char) x);
				}
				htmlPage = sb.toString();
			}

		}

		is.close();

		return htmlPage;
	}
}

تم تعديل هذه المشاركة بواسطة Mohammed Mshari Ersan في 12 سبتمبر 2009 في 17:27

#2

شكرا لك وجاري التجربه

banner1.gif

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