`
xixinfei
  • 浏览: 414089 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTTPURLCONNECTION传递中文乱码

 
阅读更多

HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();

urlConn.connect();

DataOutputStream out = new DataOutputStream(urlConn.getOutputStream());

String content = "传递中文的问题";

out.writeBytes(content);

out.flush();

out.close();

urlConn.disconnect();

依照上面的方式传递中文,服务器得到的一定是一堆乱码,原因:out.writeBytes(content);该语句在转中文时候,已经变成乱码

public final void writeBytes(String s) throws IOException {
int len = s.length();
for (int i = 0 ; i < len ; i++) {
out.write((byte)s.charAt(i));
}
incCount(len);
}
因 为java里的char类型是16位的,一个char可以存储一个中文字符,在将其转换为 byte后高8位会丢失,这样就无法将中文字符完整的输出到输出流中。所以在可能有中文字符输出的地方最好先将其转换为字节数组,然后再通过write写 入流,目前尝试过这种方法:把上面链接代码中的out.writeBytes(content);替换为 out.write(content.getBytes());先把数据转成BYTE在写入流,执行成功,服务器接收正确的中文内容,

分享到:
评论

相关推荐

    java 用HttpsURLConnection进行传递中文时错误总结

    然而,当传输包含中文字符的数据时,由于字符编码的不一致,可能会导致乱码问题。 错误通常出现在两个主要环节:请求头的设置和数据的编码/解码。以下是一些常见问题及其解决方案: 1. **请求头的Content-Type设置...

    Java通过HttpURLConnection与servlet通信

    - 传输数据时要考虑字符编码问题,确保客户端和服务器端的编码一致,避免乱码。 - 如果需要处理大型数据,考虑使用流式传输,而不是一次性加载到内存中。 总结,Java通过HttpURLConnection与Servlet通信涉及到...

    跨服务器传递参数

    在JSP中,我们可以通过Java Servlet API来创建HttpURLConnection对象,设置请求方法和参数,然后发送请求。 在处理跨服务器传输时,编码问题很重要。在这个例子中提到了`GBK编码`,这意味着在发送和接收数据时,...

    java URL乱码的解决办法

    Java URL 乱码问题在开发过程中常常困扰开发者,尤其是在处理包含中文字符的URL时。URL乱码通常是由于编码和解码过程中的不匹配所引起的。本文将深入探讨这个问题,并提供几种有效的解决方法。 首先,我们需要了解...

    服务器端测试GET、POST

    GET和POST主要用于客户端(如Android前端)与服务器之间的通信,而处理中文乱码问题则是一个额外的技术挑战。 GET方法是HTTP中最基础的请求类型,通常用于获取服务器上的资源。它将参数附加到URL中,以问号(?)...

    安卓文件下载上传解压相关-andorid采用post方法把文件传输到自己写的服务器并解决了文件中文编码问.rar

    Java默认使用ISO-8859-1编码,这可能导致中文乱码。解决方案是在读写文件名时指定正确的编码格式,如UTF-8。在发送HTTP请求时,确保设置合适的`Content-Type`,如`application/x-www-form-urlencoded; charset=UTF-8...

    抓取http报头

    2. **编码兼容性**:当前代码默认使用`iso-8859-1`编码读取内容,但在实际应用中,应根据实际情况选择正确的字符集,以避免乱码问题。 3. **性能考量**:当处理大量或频繁的HTTP请求时,考虑使用连接池或其他并发...

    基于Android平台的物流撮合系统司机端的设计与应用.pdf

    例如,Utf8json Object Request用于防止中文数据传输过程中的乱码问题。 2.2 二进制数据传输 对于二进制数据,如图片和音频文件,系统通过HttpURLConnection进行传输。同时,利用Handler和Message在设备本地处理...

    java 调用运营商短信方法(一)

    - 由于短信支持多种字符集,如7位ASCII、GSM 7位扩展、Unicode等,需要根据短信内容正确选择编码,避免乱码问题。 7. **测试与调试**: - 使用模拟器或真实设备进行测试,确保短信能正常发送和接收。 - 日志记录...

    java-url-connection-demo

    URL编码通常使用UTF-8,因此在读取响应时,确保使用正确的字符集解码,以避免乱码。 在实际开发中,通常会使用Apache HttpClient或OkHttp这样的库来替代URLConnection,因为它们提供了更高级的功能和更好的性能。...

    编码类

    Java的`BufferedReader`和`BufferedWriter`类在读写文件时会涉及到这些操作,你可以通过传递`Charset`对象给它们的构造函数来指定编码方式。 5. **字符编码问题**: 在处理不同编码格式的数据时,如果编码不匹配,...

    HttpClient以及获取页面内容应用

    2.3.1获取内容中文乱码 /** * 通过url获取网页内容, * 解决中文乱码问题 * @param httpUrl * @return */ public static String downloadPage(String httpUrl) { StringBuffer pageBuffer = new ...

Global site tag (gtag.js) - Google Analytics