[JavaME] - problem z kodowaniem

0

mam aplikację która łączy się z danym adresem url a konkretnie z plikiem php który tam jest. plik zwraca dane i tu wszystko fajnie działa.

problem z kodowaniem bo przy polskich znakach mam krzaki.

	public void connect(String url) {
			HttpConnection c = null;
			InputStream is = null;
			StringBuffer b = new StringBuffer();
			StringTools st = new StringTools(";");
			try {
				c = (HttpConnection)Connector.open(url);
				is = c.openDataInputStream();
				int ch;
				while((ch = is.read()) != -1) {
					b.append((char) ch);
				}
			} catch(Exception ex) {}
			
			int count = 0;
			
			if(url.equals("http://jakasstrona.pl/index.php?id=mobilecontent&no_cache=1"))
				count = st.split(b.toString()).length;
			
			System.out.println(count);
			
			if(count > 0) {
				String[] test = new String[count];
				test = st.split(b.toString());
				list = new List("lista", List.IMPLICIT);
				for(int i = 0; i < count; i++) {
					list.append(test[i], null);
				}
				list.addCommand(CMD_OK);
				list.addCommand(CMD_EXIT);
			} else {
				list = new List("lista", List.IMPLICIT);
				String test = b.toString();
				list.append(test, null);
				list.addCommand(CMD_BACK);
//				String test = b.toString();
//				list.append(test, null);
			}
			
			list.setCommandListener(this);
			mDisplay.setCurrent(list);
	}
	
}

jak to przerobić ?

czytałem o readUTF obiektu DataInputStream, ale nic mi nie zwraca

0

próbowałem jeszcze takiego motywu

HttpConnection connection = null;
		InputStream inputStream = null;
		DataInputStream dis = null;
		String response = "";
		StringTools st = new StringTools(";");
		
		try {
			connection = (HttpConnection) Connector.open(url);
			inputStream = connection.openInputStream();
			dis = new DataInputStream(inputStream);
			response = dis.readUTF();
		} catch(Exception ex) {
			ex.printStackTrace();
		}
		System.out.println(response.toString());

otrzymuje

java.io.EOFException
at java.io.DataInputStream.readFully(+48)
at java.io.DataInputStream.readUTF(+30)
at java.io.DataInputStream.readUTF(+4)
at core.T3Connector.connect(+55)
at core.T3Connector$1.run(+14)

0

A próbowałeś bez pakietów a po prostu zrobić stringa z tego co przyjdzie?

indata = new DataInputStream(new BufferedInputStream(connection.openInputStream());

String aaa = indata.readUTF();

?

0

o ile się nie mylę to BufferedInputStream nie występuje w pakiecie CLDC a tylko CDC

0
HttpConnection connection = null;
		InputStream inputStream = null;
		StringBuffer stringBuffer = null;
		StringTools st = new StringTools(";");
		try {
			int code;
			connection = (HttpConnection)Connector.open(url);
			inputStream = connection.openInputStream();
			stringBuffer = new StringBuffer();
			InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
			int total = 0;
			int read = 0;
			while((read = inputStreamReader.read()) >= 0) {
				total++;
				stringBuffer.append((char) read);
			}
		} catch(Exception ex) {
			ex.printStackTrace();
		}

tak wygląda rozwiązanie problemu :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1