熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

解決js UTF-8傳參到GBK頁面亂碼問題

2013-11-15 11:58:24  來源: JSP教程 

  js UTF傳中文參數到GBK之所以不行是因為其字符長度不同個中文在UTF中為個字符而GBK為個字符所以導致encodeURL後不同編碼內容不一致

  要轉換編碼怎麼都離不開服務器所以最佳辦法是做一個中轉頁面你可以提示“正在跳轉到xxx”但是這個頁面的實質是處理中文參數問題通過js用URl傳參到中轉頁面中轉頁面再通過$_GET來判斷是否有參數有則用iconv轉換編碼然後再組合轉換好的URL參數跳轉到GBK頁面

  下面是作者的一個簡單的中轉業供不懂的同學參考

代碼如下   <!DOCTYPE html>
<html xmlns=“:lang=“zhCN” lang=“zhCN”>
<head>
<meta httpequiv=“ContentType” content=“text/html; charset=gbk” />
</head>
<body>
<h>正在跳轉到相應服務器……</h>

<?php
$url = array(
‘tmall’ => ‘
buy’=> ‘
);
if( $_GET[url] == ” && $_GET[q] == ” )
echo ‘<script>alert(“參數有誤點確定後將自動跳轉回首頁”);windowlocationhref=“http://’$_SERVER[HTTP_HOST]’”</script>’;
else
{
echo ‘<script>windowlocationhref=“‘$url[$_GET[url]]iconv(‘UTF’GBK’$_GET[q])’”</script>’;
}

?>

</body>
</html>

  UTF頁面引用外部編碼為GBK的JS文件編碼的處理

  比如對於QQ的IP返回城市的接口的js我們使用下面的代碼可是在UTF頁面中正常的顯示GBK編碼的js

代碼如下  

  <script type=”text/javascript” src=”

  這樣子我就成功的解決了在UTF頁面中引入編碼為GBK的JavaScript文件亂碼問題了而且不需要額外的寫函數處理GBK轉UTF編碼同樣對於GBK頁面引用編碼為UTF編碼的JavaScript文件如果出現亂碼問題可以使用下面的代碼來解決

代碼如下  

  <script type=”text/javascript” src=”testjs” charset=”utf″></script>

  此方法是對於在js文件中出現漢字中文以及其他容易造成在GBK與UTF編碼錯誤字符的時候使用對於純英文的就不需要了如果為了保險加上也無妨~


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19994.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.