java http utf8_java – 通过HttpURLConnection发送UTF-8字符失败

本文解决了一个关于使用 Java HttpURLConnection 发送 UTF-8 编码字符串的问题。问题出现在特殊字符未能正确编码并被服务器接收的情况。解决办法是在 Content-Type 标头中设置正确的字符集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我现在已经花了一半星期天,我现在需要帮助:

我想使用Java HttpURLConnection将包含特殊字符UTF-8编码的字符串发送到服务器.字符的正确编码失败.

例:

strToSend: ä ù €

strUrlEncoded: %C3%A4+%C3%B9+%E2%82%AC

strReceived:ä ù â¬

我的代码:

urlConnection = (HttpURLConnection) new URL("http://localhost:8080/NetworkingServer/ServerServlet").openConnection();

urlConnection.setUseCaches(false);

urlConnection.setDoOutput(true); // Triggers POST.

urlConnection.setRequestProperty("accept-charset", "UTF-8");

urlConnection.setRequestProperty("content-type", "application/x-www-form-urlencoded");

String strToSend = "ä ù €";

System.out.println("strToSend: " + strToSend);

String strUrlEncoded = URLEncoder.encode(strToSend, "UTF-8");

System.out.println("strUrlEncoded: " + strUrlEncoded);

OutputStreamWriter writer = new OutputStreamWriter(urlConnection.getOutputStream(), "UTF-8");

writer.write(String.format("content=%s", strUrlEncoded));

writer.close();

有任何想法吗?

解决方法:

您需要在Content-Type标头中设置编码.

将其设置为“application / x-www-form-urlencoded; charset = utf-8”.目前你只设置了accept-charset – 这告诉服务器要发回什么.

标签:java,httpurlconnection,utf-8

来源: https://codeday.me/bug/20190613/1229542.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值