當我們使用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>