[PHP] 解決網址傳遞中文參數時所發生的亂碼問題

當我們使用IE系列的瀏覽器,在傳送中文參數時,往往會產生亂碼的問題。而身為一個程式設計師,必須要解決此問題,因此若是先將中文參數先給編碼後,再由瀏覽器去解碼,才是一個不錯的解決方案。

假設有一段程式碼如下:

<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
</head>
<body>

<?php
echo "school=" . $_GET['school']";
echo "schoolcode=" . $_GET['schoolcode'];
$school = "中和高中";
$URL = "test.php?school=".$school."&schoolcode=123";
?>

<p>
<a href=<?php echo $URL?>>中和高中</a>
</p>
</body>
</html>

 

那麼,當你用IE看時,很明顯地就知道他是亂碼。這時我們必須要將中文參數的地方先編碼過後再傳。這時,就得動用到「rawurlencode」這個函式了。

<?php
$school = "中和高中";
$school = rawurlencode($school);
?>


以上列來說,上列最有可能是中文的,就是「$school」這個參數,而這時我們只要改成以下程式碼就可以了。

<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
</head>
<body>

<?php
echo "school=" . $_GET['school']";
echo "schoolcode=" . $_GET['schoolcode'];
$school = "中和高中";
$school = rawurlencode($school);
$URL = "test.php?school=".$school."&schoolcode=123";
?>

<p>
<a href=<?php echo $URL?>>中和高中</a>
</p>
</body>
</html>
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments