servlet request getQueryString 汉字的URI编码如何转码
JavaScript中编码有三种方法:escape、encodeURI、encodeURIComponent,地址栏中那些%XX就是汉字对应的字节被encodeURI编码格式转了。一个字节对应一个%
转换方式如下:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String line = request.getQueryString();
System.out.println(line);
String isDecodeUrl = URLDecoder.decode(line, "UTF-8");//将带汉字的encodeURI编码转换成字节,然后用UTF-8格式对字节解码
System.out.println(isDecodeUrl);
String reg = "[\\u4e00-\\u9fa5]+";//汉字的unicode范围
StringBuilder chineseWord = new StringBuilder();
Pattern p = Pattern.compile(reg);//匹配规则封装
Matcher m = p.matcher(isDecodeUrl);//将匹配规则和要匹配的字符串组合生成匹配引擎
while(m.find())
chineseWord.append(m.group());//用正则取得所有汉字
System.out.println(chineseWord.toString());
String cnm = URLEncoder.encode(chineseWord.toString(), "GBK");//将汉字用GBK编码转成字节,然后用encodeURI进行编码。
System.out.println(cnm);
isDecodeUrl = URLDecoder.decode(cnm, "GBK");//做个试验验证是不是能正常转回来
System.out.println(isDecodeUrl);
response.setCharacterEncoding("GBK");
response.setHeader("Content-type","text/html;charset=GBK");
PrintWriter out = response.getWriter();
out.println(isDecodeUrl);
}
servlet request getQueryString 汉字的URI编码如何转码的更多相关文章
- servlet request
request.getRequestURI(); request.getRequestURL(); getQueryString();//返回查询信息 getRemoteAddr();//得到来访者地 ...
- 获取完整的URL request.getQueryString()
public String codeToString(String str) { String strString = str; try { byte tempB[] = strString.getB ...
- jquery ajax到servlet出现中文乱码(utf-8编码下)
个人遇到的该问题有两大类: 第一类很普遍,就是jsp页面编码没有规定,servlet中接收参数没有转码,response没有使用setContentType()和setCharacterEncodin ...
- Web应用中request获取path,URI,URL
Web应用中有各种获取path或URI,URL的方法,假设网页访问地址: http://localhost:8080/tradeload/TestServlet Web应用context: /trad ...
- URI编码解码和base64
概述 对于uri的编解码,在js中有3对函数,分别是escape/unescape,encodeURI/decodeURI,encodeURIComponent/decodeURIComponent. ...
- .Net(c#)汉字和Unicode编码互相转换
{"Tilte": "\u535a\u5ba2\u56ed", "Href": "http://www.cnblogs.com&q ...
- JavaScript及C# URI编码详解
转载自:http://www.cnblogs.com/artwl/archive/2012/03/07/2382848.html 应用Uri编码,可以把一个或多个Uri作为另一个Uri的参数(如果不用 ...
- 从此不再惧怕URI编码:JavaScript及C# URI编码详解
混乱的URI编码 JavaScript中编码有三种方法:escape.encodeURI.encodeURIComponent C#中编码主要方法:HttpUtility.UrlEncode.Serv ...
- 一个汉字的ASCII编码 
一个汉字的ASCII编码:
随机推荐
- python开发_counter()
在python的API中,提到了Counter,它具有统计的功能 下面是我做的demo: 1.统计自定义字符串中每个字符出现的次数 2.读取一个文件,把文件中的内容转化为字符串,统计该字符串中每个字符 ...
- HDU 5654 xiaoxin and his watermelon candy 离线树状数组 区间不同数的个数
xiaoxin and his watermelon candy 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5654 Description Du ...
- 树莓派(Debian)系统设置了静态IP之后还会获取动态IP的问题解决(scope global secondary eth0)
解决方法: 1.配置好静态IP在/etc/network/interface 2.关闭dhcp服务(不知道这个服务是干嘛的,明明是客户端还需要这个) sudo systemctl stop dhcpc ...
- <摘录>linux signal 列表
Linux 信号表 Linux支持POSIX标准信号和实时信号.下面给出Linux Signal的简表,详细细节可以查看man 7 signal. 默认动作的含义如下: 中止进程(Term) 忽略 ...
- SharePoint 2013 排错之"Code blocks are not allowed in this file"
今天,设置页面布局的自己定义母版页时,设置完了以后保存,然后预览报错,错误例如以下截图:删掉自己定义母版页的MasterPageFile属性,页面依旧报错:感觉甚是奇怪,由于有版本号控制,还原为最初的 ...
- Programmable current source requires no power supply
Engineering labs are usually equipped with various power supplies, voltmeters, function generators, ...
- MySQL MyISAM和InNodb备份与恢复技巧
1. 为什么要备份数据库 对数据库来说,最重要也最容易被忽视的就是备份.由于不可预测性,偶然的事件可能会导致非常惨重的损失. 数据越是重要,数据的变化越频繁,备份越发需要经常进行. 备份周期根据不同业 ...
- (转)rtmp协议简单解析以及用其发送h264的flv文件
Adobe公司太坑人了,官方文档公布的信息根本就不全,如果只按照他上面的写的话,是没法用的.按照文档上面的流程,server和client连接之后首先要进行握手,握手成功之后进行一些交互,其实就是交互 ...
- 使用 HAProxy, PHP, Redis 和 MySQL 轻松构建每周上亿请求Web站点
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- cocos2dx 3.0研究(1)-- hello world程序
1. 在mac上构建hello world很easy ./setup.py source /Users/jiangxf/.bash_profile cocos new AliGame -p com.m ...