使用MIDP通过http从服务器读取UTF8字符串

我想使用java MIDP从我控制的服务器读取UTF-8字符串。 我的服务器正在发送UTF-8数据。 以下代码关闭:

c = (StreamConnection) Connector.open( myServer, Connector.READ_WRITE); InputStream is = c.openInputStream(); StringBuffer sb = new StringBuffer(); int ch; while((ch = is.read()) != -1) sb.append((char)ch + "->" + ch + "\n"); 

我打印char及其代码以进行调试。 我认为它在这里读取ASCII字符,因此,当我有一些其代码大于127的字符时,我得到两个字符,如下面两个例子:

信á。 UTF代码E1(hex)。 我得到195然后是161

信ô。 UTF代码F4(hex)。 我得到195然后是180

我的问题是,有没有办法让我直接读取UTF字符。 我在网上找到了一些解决方案,但没有一个适合MIDP。

而不是读取字节,读取字符。 使用InputStreamReader API将字节转换为字符并通过UTF-8编码器运行。 应该支持它作为JavaME CLDC(JSR 30)配置文件的一部分; 这就是链接指向的地方。

尝试这样的事情:

 c = (StreamConnection) Connector.open( myServer, Connector.READ_WRITE); Reader r = new InputStreamReader(c.openInputStream(), "UTF-8"); StringBuffer sb = new StringBuffer(); int ch; while((ch = r.read()) != -1) sb.append((char)ch + "->" + ch + "\n");