输入
-
在尝试存储或在任何地方使用它之前,你应该将每个收到的字符串验证为有效的 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">