效果图:
正常接收到中文的请求是这个样子的:%E6%AC%A2%E8%BF%8E%E6%9D%A5%E5%88%B0%E5%B0%8F%E8%93%9D%E6%9E%A3%E7%9A%84%E5%8D%9A%E5%AE%A2%EF%BC%81
通过解码方法:
String url_new = java.net.URLDecoder.decode(url, "UTF-8");
解码后恢复为中文:
欢迎来到小蓝枣的博客!

测试这个请求:

测试代码如下:
如果需要编码的话可以使用:
String url_new = java.net.URLEncoder.encode(url, "UTF-8");

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;public class SocketTest {public static void main(String[] args) throws IOException {/*作用:接收浏览器的请求并响应*/// 创建服务,端口设置为10010ServerSocket server = new ServerSocket(10010);while(true) {// 阻塞式连接,当接收请求前保持阻塞Socket socket_client = server.accept();// 获取输入流InputStream in_put = socket_client.getInputStream();// 制作响应报文StringBuffer response = new StringBuffer();// 读取请求内容BufferedReader input = new BufferedReader(new InputStreamReader(in_put,"GBK"));String url = input.readLine();if(url != null) {String url_new = java.net.URLDecoder.decode(url, "UTF-8");System.out.println("URLDecoder 解码前:\n" + url);System.out.println("\nURLDecoder 解码后:\n" + url_new);}// 响应头部String response_head = "HTTP/1.1 200 OK\r\n" +"Content-type:text/html\r\n\r\n";// 响应主体String response_body = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">" +  // 解决乱码问题"<link rel=\"shortcut icon\" href=\"https://g.csdnimg.cn/static/logo/favicon32.ico\" type=\"image/x-icon\" />" + // 解决二次请求"<style>body{font-family:\"黑体\"}</style>" +"欢迎来到小蓝枣的博客<br>" +"Welcome to xiaolanzao's blog!";response.append(response_head + response_body);// 获取输出流OutputStream out_put = socket_client.getOutputStream();// 将响应数据传给输出流out_put.write(response.toString().getBytes());// 关闭创建的对象out_put.close();in_put.close();socket_client.close();}}
}

喜欢的点个赞❤吧!

Java 技术篇 - ServerSocket接收http的url请求中包含中文的处理方法,URLDecode与URLEncode,url解码与编码相关推荐

  1. 解决URL请求中的中文乱码问题

    解决URL请求中的中文乱码问题 参考文章: (1)解决URL请求中的中文乱码问题 (2)https://www.cnblogs.com/franson-2016/p/5733667.html (3)h ...

  2. URL请求中的中文乱码问题

    URL提交中文出现乱码有两种办法: 1.请求端的中字符有encodeURI进行一次转码,如:  var url="/getUser?name="+encodeURI(name); ...

  3. java.net.url 中文乱码_asp.net URL中包含中文参数造成乱码的解决方法

    asp.net URL中包含中文参数造成乱码的解决方法 更新时间:2010年03月08日 21:44:27   作者: 中文乱码一直以来是WEB开发中比较常见的问题之一,对于初学者来说,各种各样的编码 ...

  4. ajax 传输中文乱码,关于Ajax请求中传输中文乱码问题的解决方案

    今天遇到一个问题,有关ajax 请求中传输中文,遇到乱码的问题. 如下代码: function UpdateFolderInfoByCustId(folderId, folderName, custI ...

  5. URL地址中的中文乱码问题的解决

    引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生了,该如何解决呢?且听本文详细道来. ...

  6. ajax中解决乱码的问题,关于Ajax请求中传输中文乱码问题的解决方案

    今天遇到一个问题,有关ajax 请求中传输中文,遇到乱码的问题. 如下代码: function UpdateFolderInfoByCustId(folderId, folderName, custI ...

  7. axios请求GBK页面中文乱码解决方法

    axios请求GBK页面中文乱码解决方法 参考文章: (1)axios请求GBK页面中文乱码解决方法 (2)https://www.cnblogs.com/bjhl/articles/10514038 ...

  8. 总结:SpringMVC 中 GET 和 POST 方式请求中的中文乱码问题

    2019独角兽企业重金招聘Python工程师标准>>> 以下是 SpringMVC 中 GET 和 POST 方式请求中的中文乱码问题的解决方法. 1,GET 方式中文乱码: 修改t ...

  9. Java 技术篇 - 前端浏览器发送一次url请求后端ServerSocket接收到两次请求原因及解决方法,GET /favicon.ico HTTP/1.1问题处理

    效果图如下: 前端发送一次请求,后端接收到两次,第二次是:GET /favicon.ico HTTP/1.1 可以看到页签上标题栏前面是个地球,这个是默认的. 原因就是后台给的响应里没有指定这个图标, ...

最新文章

  1. python数据库学习--Mysql
  2. [译]高效的TensorFlow 2.0:应用最佳实践以及有什么变化
  3. HRFormer 多分辨率Transformer 参数骤降,性能更强
  4. strcpy()和memcpy()的区别
  5. VS2013 生成时复制文件或目录到指定目录
  6. Webex 如何在在线会议领域保持优势?
  7. 一位嵌入式工程师,硬核单片机编程思想!
  8. 怎么激活linux系统远程桌面休眠状态,如何从命令行挂起/休眠?
  9. C语言如何处理不定长度参数,C语言中不定参数的实现
  10. 洛谷 P2121 拆地毯
  11. 联想服务器thinkserver TS550 Raid5制作及winserver2012R2 安装过来
  12. 机器人码垛手持式编程_工业机器人的码垛编程方法
  13. 简单的html练习:实现超好看唯美浪漫的文字边框卡片
  14. OPPO小布推出预训练大模型OBERT,晋升KgCLUE榜首
  15. appium 配置 打开应用闪退
  16. UE4 LOD Screen Size
  17. python爬虫招聘网站(智联)
  18. 大数据与SQL周末读书微信群,等你来
  19. 字母不同类型_只是我的类型跟踪字母的演变,第2部分
  20. 2019年趋势科技校园招聘-附内推码(社招的可以私我)

热门文章

  1. 人生苦短,请好好珍惜自已的身体
  2. 用css3写遨游的logo
  3. UNP Chapter 9 - 基本名字与地址转换
  4. Linux设备驱动模型概述(Linux device driver model overview)
  5. linux常用的内核镜像格式
  6. 确定关键质量的5大原则
  7. 【Unity】Protobuf的使用与常见问题
  8. 10.23 相对,绝对路径,cd,mkdir/rmdir,rm命令
  9. JS组件系列——封装自己的JS组件,你也可以
  10. vCenter6.0配置二:配置HA群集