1、如何把js獲取url中文亂碼進行轉碼?
一:Js的Url中傳遞中文參數亂碼問題,重點:encodeURI編碼,decodeURI解碼:1.傳參頁面Javascript 代碼:<script type=」text/ javascript 」>// <![CDATA[function send(){var url = "test01.html";var userName = $("#userName").html();window.open(encodeURI(url + "?userName=" + userName)); }// ]]>
2、js中url怎樣對中文進行編碼
可以調用window.encodeURI()進行編碼
3、JS對URL字元串進行編碼/解碼分析
雖然escape()、encodeURI()、encodeURIComponent()三種方法都能對一些影響URL完整性的特殊
字元進行過濾。但後兩者是將字元串轉換為UTF-8的方式來傳輸,解決了頁面編碼不一至導致的亂碼問
題。例如:發送頁與接受頁的編碼格式(Charset)不一致(假設發送頁面是GB2312而接收頁面編碼是
UTF-8),使用escape()轉換傳輸中文字串就會出現亂碼問題。
以下是JS下對URL進行編/解碼的各種方法:
escape
方法:返回一個可在所有計算機上讀取的編碼
String
對象。
function
escape(charString
:
String)
:
String
不會被此方法編碼的字元:
@
*
/
+
說明:escape
方法返回一個包含
charstring
內容的字元串值(Unicode
格式)。所有空格、標點、
重音符號以及任何其他非
ASCII
字元都用
%xx
編碼替換,其中
xx
等於表示該字元的十六進制數。
例如,空格返回為「%20」。(字元值大於
255
的字元以
%uxxxx
格式存儲。)
注意:escape
方法不能用來對「統一資源標識符」(URI)
進行編碼。對其編碼應使用
encodeURI
和
encodeURIComponent
方法。
encodeURI
方法:返回編碼為有效的統一資源標識符
(URI)
的字元串。
function
encodeURI(URIString
:
String)
:
String
不會被此方法編碼的字元:!
@
#
$
&
*
(
)
=
:
/
;
?
+
'
說明:encodeURI
方法返回一個已編碼的
URI。如果將編碼結果傳遞給
decodeURI,則將返回初始的
字元串。encodeURI
不對下列字元進行編碼:「:」、「/」、「;」和「?」。請使用
encodeURIComponent
對這些字元進行編碼。
encodeURIComponent
方法:返回編碼為統一資源標識符
(URI)
的有效組件的字元串。
function
encodeURIComponent(encodedURIString
:
String)
:
String
不會被此方法編碼的字元:!
*
(
)
'
說明:encodeURIComponent
方法返回一個已編碼的
URI。如果將編碼結果傳遞給
decodeURIComponent,則將返回初始的字元串。因為
encodeURIComponent
方法將對所有字元編碼,
請注意,如果該字元串代表一個路徑,例如
/folder1/folder2/default.html,則其中的斜杠也將被
編碼,這樣,當該字元串作為請求發送到
Web
伺服器時它將是無效的。如果字元串中包含多個
URI
組件,請使用
encodeURI
方法進行編碼。
unescape
方法:從用
escape
方法編碼的
String
對象中返回已解碼的字元串。
function
unescape(charString
:
String)
:
String
說明:unescape
方法返回一個包含
charstring
內容的字元串值。所有以
%xx
十六進制形式編碼的
字元都用
ASCII
字元集當中等效的字元代替。(以
%uxxxx
格式(Unicode
字元)編碼的字元用十六
進制編碼
xxxx
的
Unicode
字元代替。)
注意:unescape
方法不應用於解碼「統一資源標識符」(URI)。請改用
decodeURI
和
decodeURIComponent
方法。
decodeURI
方法:返回一個已編碼的統一資源標識符
(URI)
的非編碼形式。
function
decodeURI(URIstring
:
String)
:
String
decodeURIComponent
方法:返回統一資源標識符
(URI)
的一個已編碼組件的非編碼形式。
function
decodeURIComponent(encodedURIString
:
String)
:
String
BTW:C#中對URL編碼的方法。。。
編碼:Server.UrlEncode(string)
解碼:Server.UrlDecode(string)
前面三種客戶端編碼都可以用這個方法在後台解碼。
4、怎麼對url連接進行URL 編碼
在js中可以使用escape(), encodeURL(), encodeURIComponent(),三種方法都有一些不會被編碼的符號:
escape():@ * / +
encodeURL():!版 @ # $& * ( ) = : / ; ? + '
encodeURIComponent():! * ( ) '
在java端可以使用URLDecoder.decode(「中文」權, "UTF-8");來進行解碼
但是由於使用request.getParameter()來獲取參數時已經對編碼進行了一次解碼,所以一般情況下只要在js中使用
encodeURIComponent("中文");
在java端直接使用request.getParameter()來獲取即可返回中文。
如果你想在java端使用URLDecoder.decode(「中文」, "UTF-8");來解碼也可以在js中進行二次編碼,即:
encodeURIComponent(encodeURIComponent("中文"));
如果不進行二次編碼的話,在java端通過decode方法取的會是亂碼。
5、在JS表單中如何實現傳值和URL編碼轉換
遇到問題自己多試試, 是可以的, service 裡面處理邏輯就是為了這一點事務的特性.
另外, OpenSessionInView 是指將 連接傳至 頁面渲染的視圖層(與 SQL 語句中的 select 才有關系), 與你提的問題沒什麼關系.
btw: 建議使用更細顆度的處理, 不要使用一個 * 就完事了, propagation 默認就是 REQUIRED, 有點多餘了.
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" isolation="READ_COMMITTED" rollback-for="Throwable" />
<tx:method name="update*" isolation="READ_COMMITTED" />
<tx:method name="del*" propagation="REQUIRES_NEW"/>
<tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
</tx:attributes>
</tx:advice>
6、用JS將URL中的漢字編碼成GBK,怎麼弄?
var GB2312UnicodeConverter = {用此方法試試。
個人覺得這個轉碼的工作最好還是在接收端做
7、js怎麼處理url編碼問題,我現在有個url需要加個參數,假設url地址是http:a/b/c而參
用字元串連接,還有/\這種斜杠最好用編碼寫
8、js中文轉碼url問題
js中文轉碼默認是用urlencode,而php默認的是rawurlencode(),所以編碼出來就不一樣。
PHP中對於URL進行編碼,可以使用 urlencode() 或者 rawurlencode(),二者的區別是前者(urlencode)把空格編碼為 '+',而後者(rawurlencode)把空格編碼為 '%20',不過應該注意的是,在編碼時應該只對部分URL編碼,否則URL中的冒號和反斜杠也會被轉義。
在解碼時,可以使用相應的 urldecode() 和 rawurldecode(),相應地,rawurldecode() 不會把加號('+')解碼為空格,而 urldecode() 會。
語法:urlencode($str) rawurlencode($str) urldecode($str) rawurldecode($str)
GBK與UTF-8的轉碼:
iconv("gbk","utf-8","php中文轉碼");//把中文gbk編碼轉為utf8
iconv("utf-8","gbk","php中文轉碼");//把中文utf8編碼轉為gbk
9、如何消除PHP和JS 對URL編解碼的不同之處,統一前後端對URL的編解碼
json_encode()用eval()還原
base64_decode()用base64_encode()還原
數組是searialize()unsearialize。如果你還有想了解的可以去後盾人試試,這樣會有不錯的效果視頻也不錯 ,你有時間可以去試試