将用户输入转换为UTF-8的最佳方法

Bra*_*ldt 9 php character-encoding

我正在构建一个PHP Web应用程序,它可以在UTF-8中运行.数据库是UTF-8,页面用作UTF-8,我使用元标记将字符集设置为UTF-8.当然,对于使用Internet Explorer,以及从Microsoft Office复制和粘贴的用户,我不知何故设法偶尔不会输入UTF-8.

理想的解决方案是抛出HTTP 400 Bad Request错误,但显然我不能这样做.下一个最好的事情是转换$_GET,$_POST并转换$_REQUEST为UTF-8.反正有没有看到输入的字符编码是什么,所以我可以把它传递给iconv?如果没有,这样做的最佳解决方案是什么?

Jef*_*ert 8

查看mb_detect_encoding() 示例:

$utf8 = iconv(mb_detect_encoding($input), 'UTF-8', $input);
Run Code Online (Sandbox Code Playgroud)

还有,如果你能保证该字符串输入为ISO-8859-1.utf8_encode()