輸入

  • 在嘗試儲存或在任何地方使用它之前,你應該將每個收到的字串驗證為有效的 UTF-8。PHP 的 mb_check_encoding() 可以解決問題,但你必須始終如一地使用它。由於惡意客戶端可以以他們想要的任何編碼提交資料,因此無法解決這個問題。

    $string = $_REQUEST['user_comment'];
    if (!mb_check_encoding($string, 'UTF-8')) {
        // the string is not UTF-8, so re-encode it.
        $actualEncoding = mb_detect_encoding($string);
        $string = mb_convert_encoding($string, 'UTF-8', $actualEncoding);
    }
    
  • **如果你使用的是 HTML5,那麼你可以忽略最後一點。**你希望瀏覽器傳送給你的所有資料都是 UTF-8。唯一可行的方法是將 accept-charset 屬性新增到所有 <form> 標籤中,如下所示:

    <form action="somepage.php" accept-charset="UTF-8">