发布时UTF8无法正常工作

时间:2012-12-13 11:56:49

标签: php utf-8

UTF8字符有一个非常奇怪的问题。

我有以下内容:

  • 我的所有文件都是UTF-8

  • 我正在使用(以我的形式):accept-charset="utf-8"

  • 我得到了:<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

但出于某种原因,当我发布UTF8字符时:ö ä å 然后我回复$ _GET []输出节目:���

感觉就像我尝试了一切,非常欢迎所有的帮助! :)

1 个答案:

答案 0 :(得分:7)

浏览器将以您声明的页面相同的编码方式发送数据。要进行健全性测试,请运行此页面:

<?php
header("Content-Type:text/html; charset=utf-8");
$file = basename(__FILE__);
if( isset( $_POST['data'] ) ) {
    echo $_POST['data'];
}
else {
    echo <<<HTML
        <form method="POST" action="$file">
            <input name="data" type="text">
            <input type="submit">
        </form>
HTML;
}

将“äöä”写入表格,看看是否正确。如果不是,请尝试检查您的mbstring ini值:

<?php

var_dump(
    ini_get("mbstring.http_input"),
    ini_get("mbstring.http_output"),
    ini_get("mbstring.encoding_translation")
);

正确的值是:

string(4) "pass"
string(4) "pass"
string(1) "0"