Ⅰ java中如何去除转义字符
忽略转义的自工具类, org.apache.commons.lang.StringEscapeUtils,其中unescapeJava(String s)方法是来处理java转义字符的,可以将字符串中的 “\”转换为 “\”,“'”转换为“'”等。通过这个方法处理以上字符串
1
2
3
4
5
6
7
8
9
10
11
public class Test(){
public static void main(String[] args) {
String s = "\\u79fb\\u52a8\\u4e92\\u8054\\u7f51\\u5e94\\u7528";
String s2 = StringEscapeUtils.unescapeJava(s);
System.out.println(s);
System.out.println(s2);
}
}
输出结果: \u79fb\u52a8\u4e92\u8054\u7f51\u5e94\u7528移动互联网应用
Ⅱ jsp\java 如何编写过滤器过滤特殊字符
package com.jing.common;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class IllegalCharacterFilter implements Filter {
private String[] characterParams = null;
private boolean OK=true;
public void init(FilterConfig config) throws ServletException {
// if(config.getInitParameter("characterParams").length()<1)
// OK=false;
// else
// this.characterParams = config.getInitParameter("characterParams").split(",");
System.out.println("初始化");
}
@SuppressWarnings("unchecked")
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest servletrequest = (HttpServletRequest) request;
HttpServletResponse servletresponse = (HttpServletResponse) response;
String param = "";
String paramValue = "";
//设置请求编码格式
servletresponse.setContentType("text/html");
servletresponse.setCharacterEncoding("UTF-8");
servletrequest.setCharacterEncoding("UTF-8");
java.util.Enumeration params = request.getParameterNames();
//循环读取参数
while (params.hasMoreElements()){
param = (String) params.nextElement(); //获取请求中的参数
String[] values = servletrequest.getParameterValues(param);//获得每个参数对应的值
for (int i = 0; i < values.length; i++) {
paramValue = values[i];
//转换目标字符变成对象字符,可以多个。后期扩展特殊字符库用于管理
paramValue = paramValue.replaceAll("'","");
paramValue = paramValue.replaceAll("@","");
paramValue = paramValue.replaceAll("胡锦涛","***");
//这里还可以增加,如领导人 自动转义成****,可以从数据库中读取非法关键字。
values[i] = paramValue;
}
//把转义后的参数重新放回request中
request.setAttribute(param, paramValue);
}
//继续向下 执行请求,如果有其他过滤器则执行过滤器
arg2.doFilter(request, response);
}
public void destroy() {
// TODO Auto-generated method stub
}
}
Ⅲ java 如何在转义包含特殊字符的字符串
通过\的方式转义.
java中有特殊含义的字符(如:换行符,回车符,单引号,双引号),如果要用它,必须在前面加一个前缀“\”如换行("\n")、回车("\r")、双引号("\"")、反斜杠("\\")等
Ⅳ java中字符串如何去掉转义字符
忽略转义的来工具类, org.apache.commons.lang.StringEscapeUtils,其中源unescapeJava(String s)方法是来处理java转义字符的,可以将字符串中的 “”转换为 “”,“'”转换为“'”等。通过这个方法处理以上字符串
publicclassTest(){
publicstaticvoidmain(String[]args){
Strings="\u79fb\u52a8\u4e92\u8054\u7f51\u5e94\u7528";
Strings2=StringEscapeUtils.unescapeJava(s);
System.out.println(s);
System.out.println(s2);
}
}
输出结果:
移动互联网应用
Ⅳ java Json 串中的转义字符
一:解析普通json
1:不带转化字符
格式{"type":"ONLINE_SHIPS","message":{"currentTime":1400077615368,"direction":0,"id":1,"latitude":29.5506,"longitude":106.6466}}
JSONObject jsonObject = new JSONObject(jsonstr).getJSONObject("message");
System.out.println("currentTime:"+jsonObject.get("currentTime"));
System.out.println("direction:"+jsonObject.get("direction"));
System.out.println("latitude:"+jsonObject.get("latitude"));
System.out.println("longitude:"+jsonObject.get("longitude"));
jsonarray
JSONObject jo = ja.getJSONArray("cargoList").getJSONObject(0);
2:带转义字符的json格式
{"type":"ONLINE_SHIPS","message":"{\"currentTime\":1400077615368,\"direction\":0,\"id\":1,\"latitude\":29.5506,\"longitude\":106.6466}"}
其实也很简单,先把它转化成字符串就可以了
JSONObject jsonObject = new JSONObject(jsonstr);
//先通过字符串的方式得到,转义字符自然会被转化掉
String jsonstrtemp = jsonObject.getString("message");
System.out.println("message:"+jsonstrtemp);
jsonObject = new JSONObject(jsonstrtemp);
System.out.println("currentTime:"+jsonObject.get("currentTime"));
System.out.println("direction:"+jsonObject.get("direction"));
System.out.println("latitude:"+jsonObject.get("latitude"));
System.out.println("longitude:"+jsonObject.get("longitude"));
二:遍历Json对象
JSONObject ports = ja.getJSONObject("ports");
Iterator<String> keys = ports.keys();
while(keys.hasNext()){
String key=keys.next();
String value = ports.getString(key);
}
三:使用Gjson,json与对象相互转化
使用Gson轻松将java对象转化为json格式
String json = gson.toJson(Object);//得到json形式的字符串
User user = gson.fromJson(json,User.class);//得到对象
Ⅵ java中如何忽略字符串中的转义字符
忽略转义的工具类, org.apache.commons.lang.StringEscapeUtils,其中unescapeJava(String s)方法是来处理java转义字符的,可以将字符串中的 “专\”转换为 “\”,“'”转换为“属'”等。通过这个方法处理以上字符串
public class Test(){
public static void main(String[] args) {
String s = "\\u79fb\\u52a8\\u4e92\\u8054\\u7f51\\u5e94\\u7528";
String s2 = StringEscapeUtils.unescapeJava(s);
System.out.println(s);
System.out.println(s2);
}
}
输出结果: \u79fb\u52a8\u4e92\u8054\u7f51\u5e94\u7528移动互联网应用
Ⅶ java怎样过滤危险字符,该怎么解决
就WEB应用来说,所谓危险的字符一般就是两种
一个是SQL注入,一个是HTML语法注回入
SQL注入主流的框架都可答以搞定,JDBC永远都使用preparedstatement就可以防止所有的sql注入,关键是用户输入都要通过占位符往里放,就自动的替换掉了特殊字符了。hibernate等orm框架都会搞定这个问题
HTML语法注入是指用户输入的html代码回显出来,这样如果不转义就可以破坏页面的结构或者注入脚本。所以现在的网站都不允许用户直接输入html代码了,现在都是一些UBB标签来完成一些效果。HTML主要最好的解决办法是在回显的时候进行转义,所有的MVC框架或者展示层框架都有HTML转义的支持,包括struts,spring,volicty等,注意观察他们用于显示的标签
Ⅷ java 如何取消字符串中转义符"\"的作用,比如 Sring s = "a\nb"; 使\n失效,变为普通的字符
a\nb变成a\\nb,在这儿第一个斜杠是转义符,之后就是要输出的字符
Ⅸ 怎么防止字符串中的'\'被转义
java中转义某个特殊字符 需要在特殊字符前面加上反斜杠
因为\是转义字符 为特殊字回符 所以 \\代表\。
比如:答System.out.print("\\");这句话就输出一个反斜杠("\")。
扩展:
当你要打印无法列出的字符,比如换行符等等,要用转义字符,还有就是一些在字符串内要搞错的字符,总之是对编译器来说具有特殊意义的字符。下面是Java中转义字符序列:
\b 退格键
\t Tab键
\n 换行符号
\f 进纸
\r 回车键
\\ 反斜杠
\' 单引号
\" 双引号
例如:System.out.print("He said \"Java is fun\"");
它的输出结果是 He said "Java is fun"
System.out.print("c:\\windows\\system32")
输出结果是 c:\windows\system32