我是一個J2ME的新手,剛剛開始學習,在嘗試進行J2ME與HTTP站點進行通信時中文亂碼。在BBS上看了一些大俠們觀點,最簡單高效的方式就是與JSP進行通信WRITEUTF、READUTF。但是由於我想鏈接的目的站點是C#的,想用最小的改動就可以進行使用。
解決辦法!將C#項目中Web.config中的編碼設定為utf-8(默認就是utf-8)。
下面是J2ME的源碼:
import Javax.microedition.midlet.*;
import Javax.microedition.lcdui.*;
import Javax.microedition.io.*;
import Java.io.*;
import Java.lang.String;;
public class HttpTest extends MIDlet
{
private Display display;
public HttpTest()
{
display = Display.getDisplay(this);
}
protected void startApp() throws MIDletStateChangeException
{
try {
String url = "http://192.168.0.25/lt133/webform1.ASPx?phone=13800000000&msg1=c2";
HttpConnection hc = (HttpConnection)Connector.open(url);
DataInputStream dis = new DataInputStream(hc.openInputStream());
byte[] myData = new byte[100];
String content="";
dis.read(myData,0,myData.length);
content = new String(myData,"UTF-8");
Form f = new Form("HTTP Test");
f.append(content);
display.setCurrent(f);
}
catch(Exception e)
{
System.out.println(e.toString()) ;
notifyDestroyed();
}
}
protected void pauseApp()
{
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException
{
}
}
代碼很結構很簡單,就不加注示和說明了。希望能對和我一樣的初學者有所幫助。也希望老鳥們能多關愛我們這些熱愛這項事業的新手!!!!