我的$ _POST / $ _ REQUEST数据遇到了一些麻烦,它们看起来仍然是utf8_encoded。
我发送传统的ajax帖子请求,在这些条件下:
oXhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
<header>
代码设置encodeURIComponent
被使用,但我尝试了没有,它给出了相同的结果好的,所以一切都很好:数据库也在utf8中,并以这种方式接收,页面显示良好。
但是当我收到字符“º”时(通过$_REQUEST
或$_POST
),其二进制表示为11000010 10111010
,而“º”在php中硬编码(utf8 ...)二进制表示仅为10111010
。
跆拳道?我只是不知道这是不是一件好事...例如,如果我使用“#º#”作为explode
php函数的分隔符,它将不会被检测到,这实际上是导致我在这里的问题。
任何帮助都会像往常一样非常感谢,非常感谢您的时间。 最佳rgds。
EDIT1:核对mb_check_encoding
if (mb_check_encoding($_REQUEST[$i], 'UTF-8')) {
raise("$_REQUEST is encoded properly in utf8 at index " . $i);
} else {
raise(false);
}
编码得到确认,我正确地提出了这个消息。
答案 0 :(得分:2)
单字节utf-8字符没有设置第7位(8位),因此10111010不是utf-8,您的文件可能以ISO-8859-1编码。