java HttpExchange返回中文报错 too many bytes to write to stream
2017-06-26 19:15
1116 查看
利用httpexchange接收消息并返回内容,以前返回内容都是英文,没遇到错误,今天返回内容包含了中文,结果就报错了,错误如题,大致意思就是写入流的字节太多了,主要代码如下:retString包含中文。
t.sendResponseHeaders(201, retString.length());
OutputStream out = t.getResponseBody();
out.write(retString.getBytes());
out.close();
t.close();
修改代码如下:
byte[] bs = retString.getBytes();
t.sendResponseHeaders(201, bs.length);
OutputStream out = t.getResponseBody();
out.write(bs);
out.close();
t.close();
解决方案来自:https://stackoverflow.com/questions/33695620/sun-net-httpserver-too-many-bytes-to-write-to-stream
查了一下,关键问题就是中文占用两个字节,所以retString.length()小于 bs.length,用这个特性还可以判断字符串中是否含有中文。。。
t.sendResponseHeaders(201, retString.length());
OutputStream out = t.getResponseBody();
out.write(retString.getBytes());
out.close();
t.close();
修改代码如下:
byte[] bs = retString.getBytes();
t.sendResponseHeaders(201, bs.length);
OutputStream out = t.getResponseBody();
out.write(bs);
out.close();
t.close();
解决方案来自:https://stackoverflow.com/questions/33695620/sun-net-httpserver-too-many-bytes-to-write-to-stream
查了一下,关键问题就是中文占用两个字节,所以retString.length()小于 bs.length,用这个特性还可以判断字符串中是否含有中文。。。
相关文章推荐
- php file_get_contents()报错 failed to open stream: HTTP request failed!、Internal Server Error
- objc_msgSend()报错Too many arguments to function call ,expected 0,have3
- objc_msgSend()报错 too many arguments to function call,expected0,have3
- iOS objc_msgSend()报错Too many arguments to function call
- IOS开发报错- objc_msgSend()报错Too many arguments to function call ,expected 0,have3
- java.lang.OutOfMemoryError : unable to create new native Thread 与 Too many open files 解决方法
- objc_msgSend()报错Too many arguments to function call ,expected 0,have3
- objc_msgSend()报错Too many arguments to function call
- objc_msgSend()报错Too many arguments to function cal
- weblogic 启动 报错:Caused by: java.lang.NoSuchMethodError: javax/persistence/OneToMany.orphanRemoval()Z
- objc_msgSend()报错Too many arguments to function call ,expected 0,have3
- ios学习笔记(3)——objc_msgSend()报错Too many arguments to function call ,expected 0,have3解决方法
- objc_msgSend()报错Too many arguments to function call ,expected 0,have3
- 使用MJRefresh的时候报错Too many arguments to function call ,expected 0,have3
- Using Sun Java 6 HttpServer to write a functional HTTP test
- objc_msgSend()报错Too many arguments to function call ,expected 0,have3
- JAVA方法DataOutputStream.writeBytes(String s)传递中文乱码问题
- Xcode中使用method_invoke或者objc_msgSend()报错Too many arguments to function call ,expected 0,have3
- objc_msgSend()报错Too many arguments to function call ,expected 0,have2
- objc_msgSend()报错Too many arguments to function call ,expected 0,have3