Ⅰ 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