Java 技术篇 - ServerSocket接收http的url请求中包含中文的处理方法,URLDecode与URLEncode,url解码与编码
效果图:
正常接收到中文的请求是这个样子的:%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解码与编码相关推荐
- 解决URL请求中的中文乱码问题
解决URL请求中的中文乱码问题 参考文章: (1)解决URL请求中的中文乱码问题 (2)https://www.cnblogs.com/franson-2016/p/5733667.html (3)h ...
- URL请求中的中文乱码问题
URL提交中文出现乱码有两种办法: 1.请求端的中字符有encodeURI进行一次转码,如: var url="/getUser?name="+encodeURI(name); ...
- java.net.url 中文乱码_asp.net URL中包含中文参数造成乱码的解决方法
asp.net URL中包含中文参数造成乱码的解决方法 更新时间:2010年03月08日 21:44:27 作者: 中文乱码一直以来是WEB开发中比较常见的问题之一,对于初学者来说,各种各样的编码 ...
- ajax 传输中文乱码,关于Ajax请求中传输中文乱码问题的解决方案
今天遇到一个问题,有关ajax 请求中传输中文,遇到乱码的问题. 如下代码: function UpdateFolderInfoByCustId(folderId, folderName, custI ...
- URL地址中的中文乱码问题的解决
引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生了,该如何解决呢?且听本文详细道来. ...
- ajax中解决乱码的问题,关于Ajax请求中传输中文乱码问题的解决方案
今天遇到一个问题,有关ajax 请求中传输中文,遇到乱码的问题. 如下代码: function UpdateFolderInfoByCustId(folderId, folderName, custI ...
- axios请求GBK页面中文乱码解决方法
axios请求GBK页面中文乱码解决方法 参考文章: (1)axios请求GBK页面中文乱码解决方法 (2)https://www.cnblogs.com/bjhl/articles/10514038 ...
- 总结:SpringMVC 中 GET 和 POST 方式请求中的中文乱码问题
2019独角兽企业重金招聘Python工程师标准>>> 以下是 SpringMVC 中 GET 和 POST 方式请求中的中文乱码问题的解决方法. 1,GET 方式中文乱码: 修改t ...
- Java 技术篇 - 前端浏览器发送一次url请求后端ServerSocket接收到两次请求原因及解决方法,GET /favicon.ico HTTP/1.1问题处理
效果图如下: 前端发送一次请求,后端接收到两次,第二次是:GET /favicon.ico HTTP/1.1 可以看到页签上标题栏前面是个地球,这个是默认的. 原因就是后台给的响应里没有指定这个图标, ...
最新文章
- python数据库学习--Mysql
- [译]高效的TensorFlow 2.0:应用最佳实践以及有什么变化
- HRFormer 多分辨率Transformer 参数骤降,性能更强
- strcpy()和memcpy()的区别
- VS2013 生成时复制文件或目录到指定目录
- Webex 如何在在线会议领域保持优势?
- 一位嵌入式工程师,硬核单片机编程思想!
- 怎么激活linux系统远程桌面休眠状态,如何从命令行挂起/休眠?
- C语言如何处理不定长度参数,C语言中不定参数的实现
- 洛谷 P2121 拆地毯
- 联想服务器thinkserver TS550 Raid5制作及winserver2012R2 安装过来
- 机器人码垛手持式编程_工业机器人的码垛编程方法
- 简单的html练习:实现超好看唯美浪漫的文字边框卡片
- OPPO小布推出预训练大模型OBERT,晋升KgCLUE榜首
- appium 配置 打开应用闪退
- UE4 LOD Screen Size
- python爬虫招聘网站(智联)
- 大数据与SQL周末读书微信群,等你来
- 字母不同类型_只是我的类型跟踪字母的演变,第2部分
- 2019年趋势科技校园招聘-附内推码(社招的可以私我)