我有一个Java servlet,它从Android应用程序获取一些数据,并使用以下代码将字符串数据返回给Android应用程序。
response.getOutputStream().write(STRING_MESSAGE.getBytes());
我在这里传递的值是从android活动中读取的:
InputStream is = con.getInputStream();
byte[] b = new byte[1024];
while(is.read(b) != -1) {
buffer.append(new String(b));
}
然后使用以下函数将值转换为String:
String result = buffer.toString();
但是在这样做之后,结果会添加一些不需要的字符(它们在菱形内部显示为'?')附加到我从servlet传递的原始字符串。我怎么能避免这个?
答案 0 :(得分:0)
正如nafas所说,编码可能是错误。 尝试用这个替换你的操作系统上的写作:
response.getOutputStream().write(STRING_MESSAGE.getBytes(Charset.forName("UTF-8")));
你还必须将mod应用于InputStream:
buffer.append(new String(b, Charset.forName("UTF-8")));