javaescape
① jsp用escape().replace()轉碼,java後台解碼
使用js先轉碼
var str = encodeURI(encodeURI(str);
java解碼
String str = URLDecoder.decode(str, "utf-8");
不管是漢字,還是特殊字元都沒問題
② java的KeyEvent類中的VK_ESCAPE是什麼意思
KeyEvent類中的VK_ESCAPE是一個常量,對應該鍵盤上的Esc鍵。
java的按鍵事件由KeyEvent封裝起來,包含有:getKeyChar獲得對應鍵字元、getKeyCode獲得對應鍵的值等方法。
java的按鍵事件通過KeyListener介面處理。處理事件必須實現KeyPressed、KeyReleased、KeyTyped三個方法,然後可以在相應方法中去按鍵事件,如:
switch(keyEvent.getKeyCode()){//keyEvent為KeyEvent對象
case VK_ESCAPE:
//按下Esc鍵對應的處理
break;
case 其他常量:
//其他處理
break;
......
}
③ java 正則表達式"[^0-9//.]+"與"[0-9//.]+"分別是什麼意思
[^0-9//.]+
匹配數字或「/」或「.」以外的字元一次或一次以上
[0-9//.]+
匹配數字或「/」或「.」一次或一次以上
其中//是在java編譯環境中「/」加上轉義字元,
另外「.」在方括弧中表示的就是「.」,其他場合下表示任意可見字元。
④ java中有沒有方法類似於js中的encodeURIComponent函數,對字元串中的特殊字元進行轉義的
//該方法不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼: - _ . ! ~ * ' ( ) 。
//其他字元(比如 :;/?:@&=+$,#
var tDT_Start =$("#DT_Start").val().replace(/:/g,'|'); //將:替代為|,傳到後台再轉換回來
var tDT_End =$("#DT_End").val().replace(/:/g,'|');
解析:字元串要匹配正則/:/g,將符合條件的替換為|
C#後台tDT_Start= tDT_Start.Replace("|", ":");
javaScript中有三個可以對字元串編碼的函數,分別是: escape,encodeURI,encodeURIComponent,相應3個解碼函數:unescape,decodeURI,decodeURIComponent 。
下面簡單介紹一下它們的區別
1 escape()函數
定義和用法
escape() 函數可對字元串進行編碼,這樣就可以在所有的計算機上讀取該字元串。
語法
escape(string)
參數 描述
string 必需。要被轉義或編碼的字元串。
返回值
已編碼的 string 的副本。其中某些字元被替換成了十六進制的轉義序列。
說明
該方法不會對 ASCII 字母和數字進行編碼,也不會對下面這些 ASCII 標點符號進行編碼: - _ . ! ~ * ' ( ) 。其他所有的字元都會被轉義序列替換。
MVC3
頁面js:
var url = URL +"?startDT="+ escape($("#StartDT").val();//時間
在action中,
{
string dt = Server.UrlDecode(startDT);
}
2 encodeURI()函數
定義和用法
encodeURI() 函數可把字元串作為 URI 進行編碼。
語法
encodeURI(URIstring)
參數 描述
URIstring 必需。一個字元串,含有 URI 或其他要編碼的文本。
返回值
URIstring 的副本,其中的某些字元將被十六進制的轉義序列進行替換。
說明
該方法不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼: - _ . ! ~ * ' ( ) 。
該方法的目的是對 URI 進行完整的編碼,因此對以下在 URI 中具有特殊含義的 ASCII 標點符號,encodeURI() 函數是不會進行轉義的:;/?:@&=+$,#
3 encodeURIComponent() 函數
定義和用法
encodeURIComponent() 函數可把字元串作為 URI 組件進行編碼。
語法
encodeURIComponent(URIstring)
參數 描述
URIstring 必需。一個字元串,含有 URI 組件或其他要編碼的文本。
返回值
URIstring 的副本,其中的某些字元將被十六進制的轉義序列進行替換。
說明
該方法不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼: - _ . ! ~ * ' ( ) 。
其他字元(比如 :;/?:@&=+$,# 這些用於分隔 URI 組件的標點符號),都是由一個或多個十六進制的轉義序列替換的。
提示和注釋
提示:請注意 encodeURIComponent() 函數 與 encodeURI() 函數的區別之處,前者假定它的參數是 URI 的一部分(比如協議、主機名、路徑或查詢字元串)。因此 encodeURIComponent() 函數將轉義用於分隔 URI 各個部分的標點符號。
4 總結:
通過對三個函數的分析,我們可以知道:escape()除了 ASCII 字母、數字和特定的符號外,對傳進來的字元串全部進行轉義編碼,因此如果想對URL編碼,最好不要使用此方法。而encodeURI() 用於編碼整個URI,因為URI中的合法字元都不會被編碼轉換。encodeURIComponent方法在編碼單個URIComponent(指請求參 數)應當是最常用的,它可以講參數中的中文、特殊字元進行轉義,而不會影響整個URL。
⑤ Java 中的空格符、換行符等怎麼表示
特殊字元的表示方法::
1、 空格 ('u0009')
2、 換行('u000A')
3、\ 反斜杠
4、 回車('u000D')
5、d數字等價於[0-9]
6、D非數字等價於[^0-9]
7、s空白符號[ x0Bf ]
8、S非空白符號[^ x0Bf ]
9、w單獨字元[a-zA-Z_0-9]
10、W非單獨字元[^a-zA-Z_0-9]
11、f換頁符
12、e Escape
(5)javaescape擴展閱讀:
Java
1、Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
2、Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
⑥ java escape轉義 有什麼用
有特殊含義的字元,具體有哪些我也記不全
輸出「\」需要:System.out.println("\\");
輸出「"」需要:System.out.println("\"");
還有就是在一些方法中,傳參數是一些比較特殊的字元的時候。
輸出&可以直接輸出,但是一些傳參時,必須是\\&,否則會錯誤。
⑦ javascript中用escape()進行數據加密後在java後台怎麼解密
可以使用 unescape() 對 escape() 編碼的字元串進行解碼。
⑧ java中編碼與解碼分別指什麼
java中編碼:URLEncoder.encode(strUri,"utf-8");
java中解碼碼:URLDecoder.decode(strUri,"utf-8");
⑨ java裡面 EscapeUnescape.unescape作用是什麼
加密和解密演算法:可以參照下面看看。
class EscapeUnescape
{
public static String escape (String src)
{
int i;
char j;
StringBuffer tmp = new StringBuffer();
tmp.ensureCapacity(src.length()*6);
for (i=0;i<src.length() ;i++ )
{
j = src.charAt(i);
if (Character.isDigit(j) || Character.isLowerCase(j) || Character.isUpperCase(j))
tmp.append(j);
else
if (j<256)
{
tmp.append( "%" );
if (j<16)
tmp.append( "0" );
tmp.append( Integer.toString(j,16) );
}
else
{
tmp.append( "%u" );
tmp.append( Integer.toString(j,16) );
}
}
return tmp.toString();
}
public static String unescape (String src)
{
StringBuffer tmp = new StringBuffer();
tmp.ensureCapacity(src.length());
int lastPos=0,pos=0;
char ch;
while (lastPos<src.length())
{
pos = src.indexOf("%",lastPos);
if (pos == lastPos)
{
if (src.charAt(pos+1)=='u')
{
ch = (char)Integer.parseInt(src.substring(pos+2,pos+6),16);
tmp.append(ch);
lastPos = pos+6;
}
else
{
ch = (char)Integer.parseInt(src.substring(pos+1,pos+3),16);
tmp.append(ch);
lastPos = pos+3;
}
}
else
{
if (pos == -1)
{
tmp.append(src.substring(lastPos));
lastPos=src.length();
}
else
{
tmp.append(src.substring(lastPos,pos));
lastPos=pos;
}
}
}
return tmp.toString();
}
public static void main(String[] args)
{
String tmp="~!@#$%^&*()_+|\\=-,./?><;'][{}\"";
System.out.println("testing escape : "+tmp);
tmp =escape(tmp);
System.out.println(tmp);
System.out.println("testing unescape :"+tmp);
System.out.println(unescape(tmp));
}
}
僅供參考。
⑩ 請問unbescape這個java類庫是干什麼,網上說是轉義,不太明白
確定單詞沒有拼錯嗎?
是不是應該是unescape?
在JavaScript中
escape()和unescape()是一對編碼解碼函數,一般用於URL中非ASCII字元的編碼和解碼!
如:escape("&")返回%26,unescape("%26")返回&,都用十六進制編碼!
這個函數在AJAX技術應用中發送中文字串很有用,特別是AJAX向GB2312編碼的ASP程序發送中文時很有用!
如:要將name="東方不敗"發給red.asp(asp為gb2312如果為UTF-8的話就不用編碼)前先做escape(name),這樣發到red.asp時中文就不會亂碼,指接用request接收就行了!
有的時候,為了後台就將url拼接好,然後直接拼接到html中(例如a標簽的href屬性),此時可能需要在後台進行轉義好。
而java自身並沒有提供對應的方法(有類似的URLEncoder/URLDecoder類,有小的差別)
因此就有人專門寫了供後台java程序調用的escape/unescape方法,具體的作用看上面的描述