package com.ascrm.util;
import java.io.UnsupportedEncodingException;
/**
* @author Roly
* TODO
*/
public class EncodeUtils {
public static String decode(String s,String charset) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
switch (c) {
case '+':sb.append(' ');
break;
case '%':
try {
sb.append((char) Integer.parseInt(s.substring(i+1, i+3),
16));
i += 2;
} catch (NumberFormatException e) {
//原样加进去
sb.append(s.substring(i+1,i+3));
i += 2;
} catch (StringIndexOutOfBoundsException e) {
String rest = s.substring(i);
sb.append(rest);
if (rest.length()==2)
i++;
}
break;
default:sb.append(c);
break;
}
}
//需要转码
String result = sb.toString();
byte [] bytes;
try {
bytes=result.getBytes("ISO-8859-1");
result=new String(bytes,charset);
}catch(Exception e) {
System.out.println("trans error: iso8859-1 to "+charset+"!");
}
return result;
}
public static String decode(String s){
return decode(s,"utf-8");
}
/**
* ===================================================
* 检验字符串,如果为汉字则转为ASCII代码。如果为英文则原样返回。
* ===================================================
*/
public static String encode(String s,String charset) {
String result = s;
try {
result = java.net.URLEncoder.encode(s, charset);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return result;
}
public static String encode(String s) {
return encode(s,"utf-8");
}
}
分享到:
相关推荐
需要注意的是,对于POST请求,我们通常需要设置请求体的字符编码,避免中文等非ASCII字符出现乱码。 在实际应用中,GET常用于无副作用的操作,如获取资源信息;POST则用于有副作用的交互,如创建、修改或删除数据。...
这里的关键是添加`URIEncoding="GBK"`属性,该属性指定了URL中的字符编码方式,确保了通过URL传递的参数能够被正确解析。 #### 二、HTML页面头部设置 接下来,在HTML页面的`<head>`部分添加`<meta>`标签,指定页面...
GET请求编码.bmp文件可能详细解释了GET方法中如何编码参数,通常参数会附加在URL后面。 2. **HTTP响应**:服务器接收到请求后,会返回一个HTTP响应,包括状态码(如200表示成功,404表示未找到)、响应头和响应体。...
- **GET方式**:参数通过URL传递,数据可见且长度有限制。安全性较低,因为数据直接暴露在URL中,可能会被浏览器缓存或保存到浏览记录中。效率较高,因为请求较短。 - **POST方式**:参数通过请求体传递,数据不可见...
- GET请求参数显式出现在URL中,POST请求参数隐藏在请求体中,POST更安全。 - GET请求效率相对较高,但参数长度有限制(通常约2KB),POST没有长度限制。 - 传送文件时,必须使用POST方式。 - 浏览器地址栏直接...
首先,我们来看看`javaWeb`目录,这通常包含了整个项目的基础结构,包括`WEB-INF`目录,其中包含了`web.xml`部署描述符,它是配置Servlet的关键文件。在这里,你需要定义Servlet的映射路径以及初始化参数,以便在...
- **创建项目**:在MyEclipse中新建JavaWeb项目,并设置项目的基本信息;将项目部署到Tomcat服务器上,方便进行调试和测试。 - **资源管理**:合理组织项目结构,包括源代码、资源文件、Web应用配置文件等。 #### ...
7. **HTTP协议与请求响应**:了解HTTP协议的基本原理,理解请求方法(GET, POST等)和响应状态码,以及请求参数的传递。 8. **JSP标签与EL表达式**:学习JSP内置对象、脚本元素、JSTL标签库和EL(Expression ...
产生乱码的原因主要有两个:一个是浏览器与服务器之间的编码不一致,另一个是GET和POST请求提交数据时编码的问题。 - 在GET请求中,中文数据会直接附加在URL之后,由于URL是基于ASCII字符集,直接发送中文会导致...
在正式开始编码之前,我们需要进行一些必要的准备工作: 1. **安装并配置开发环境**: - 安装JDK (Java Development Kit) 并配置环境变量。 - 安装Eclipse或IntelliJ IDEA等IDE (Integrated Development ...
Filter是JavaWeb中的一个中间件,它可以拦截请求和响应,执行一些预处理或后处理操作,如登录检查、数据过滤、字符编码转换等。创建Filter需要实现`javax.servlet.Filter`接口: ```java import javax.servlet.*; ...
理解并熟练运用这些JavaWeb基础概念和机制,不仅有助于解答面试问题,更能提升实际项目中的开发效率和质量。在面试准备中,除了这些基本知识点,还需要关注MVC框架、JDBC操作、Spring Boot、Hibernate等进阶技术,...
被包含的文件和主文件有独立的作用域,需要通过 request、session 或 application 来传递数据。 #### Servlet 的创建步骤 1. **定义 Servlet 类**:创建一个类并继承 `HttpServlet` 类。 2. **配置 Web 应用**:在...
// 获取GET请求参数 String name = request.getParameter("name"); // 解决GET请求乱码 String name = new String(request.getParameter("name").getBytes("ISO-8859-1"), "UTF-8"); // 设置POST请求编码 request....
- request对象:处理用户的表单提交,获取POST或GET方式传递的参数。 - session对象:用于实现用户登录状态的保持,例如记录用户信息,防止非法访问。 - application对象:存储全局变量,如网站的统计信息、配置...
7. **过滤器与监听器**:Filter在JavaWeb中用于拦截请求和响应,实现如权限验证、字符编码转换等功能。Listener则是监听Web应用中的特定事件,如用户登录、session失效等,以实现相应的处理。 8. **EJB与JMS**:...
开发者需要理解请求方法(GET、POST等)和响应状态码。同时,会话管理允许跟踪用户在网站上的活动,例如使用session或cookie来保存用户信息。 9. **过滤器和监听器**: 过滤器可以拦截HTTP请求和响应,进行预处理...
例如,如果请求行是`GET /example.jsp HTTP/1.1`,那么Servlet容器会找到匹配的Servlet,调用doGet()方法,并传递请求和响应对象供开发者使用。 总的来说,理解HTTP请求行对于JavaWeb开发人员至关重要,因为它直接...