我想使用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");
Run Code Online (Sandbox Code Playgroud)
我打印char及其代码以进行调试.我认为这里是读取ASCII字符,因此,当我有一些代码大于127的字符时,我得到两个字符,如下面的两个例子:
信á.UTF代码E1(十六进制).我得到195然后是161
信ô.UTF代码F4(十六进制).我得到195然后是180
我的问题是,有没有办法直接读取UTF字符.我在网上找到了一些解决方案,但没有一个适合MIDP.
lav*_*nio 10
而不是读取字节,读取字符.使用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");
Run Code Online (Sandbox Code Playgroud)