在用AJAX与后台交互时经常要对中文进行编码解码,对于JS来说有两个函数:encodeURIComponent用于编码,decodeURIComponent用于解码。而对于后台的PHP来说有两个相对应的编码解码函数:urlencode用于编码,urldecode用于解码。现在看下列两段代码,先给个PHP代码:
1 | <span class="preprocessor"><?php</span> <span class="variable">$myStr1</span> = <span class="string">'我是中国人'</span>; <span class="variable">$myStr2</span> = urlencode(<span class="variable">$myStr1</span>); <span class="keyword">echo</span> <span class="variable">$myStr1</span> . <span class="string">'<br />'</span>; <span class="keyword">echo</span> <span class="variable">$myStr2</span> . <span class="string">'<br />'</span>; <span class="keyword">echo</span> urldecode(<span class="variable">$myStr2</span>) . <span class="string">'<br />'</span>; <span class="preprocessor">?></span> |
上面这段php代码会输出:
1 | 我是中国人 <span class="variable">%E6</span><span class="variable">%88</span><span class="variable">%91</span><span class="variable">%E6</span><span class="variable">%98</span><span class="variable">%AF</span><span class="variable">%E4</span><span class="variable">%B8</span><span class="variable">%AD</span><span class="variable">%E5</span><span class="variable">%9B</span><span class="variable">%BD</span><span class="variable">%E4</span><span class="variable">%BA</span><span class="variable">%BA</span> 我是中国人 |
再来看JS代码:
1 2 3 4 5 6 | <span class="keyword">var</span> myStr1 = <span class="string">'我是中国人'</span>; <span class="keyword">var</span> myStr2 = encodeURIComponent(myStr1); document.write(myStr1); document.write(<span class="string">'<br />'</span>); document.write(myStr2); document.write(<span class="string">'<br />'</span>); document.write(decodeURIComponent(myStr2)); |
上面这段JS代码会输出:
1 | 我是中国人 <span class="variable">%E6</span><span class="variable">%88</span><span class="variable">%91</span><span class="variable">%E6</span><span class="variable">%98</span><span class="variable">%AF</span><span class="variable">%E4</span><span class="variable">%B8</span><span class="variable">%AD</span><span class="variable">%E5</span><span class="variable">%9B</span><span class="variable">%BD</span><span class="variable">%E4</span><span class="variable">%BA</span><span class="variable">%BA</span> 我是中国人 |
和上面PHP代码输出的内容是一样的。