PHP形式charset

时间:2013-02-07 13:37:44

标签: php character-encoding

我在Stack溢出时遇到过几个类似的问题,但都没有给出结果。 在我的简单形式中,我想让人们发布像"Pagé Caiçara"

这样的字符串

检查我的html头我有以下元:<meta charset="UTF-8">

我的表单标记

<form id="contato-form" action="some_file.php" method='POST' accept-charset='UTF-8'>

我还有一个隐藏的输入来强制使用utf编码:

<input name="utf8" type="hidden" value="&#x2713;" />

但他们似乎没有工作,如果尝试提交“PagéCaiçara”并且他们检查我的$ _POST给了我:

echo print_r($_POST);

输出:

  
    

数组([nome] =&gt;PagéCaiçara[empresa] =&gt;公司[email] =&gt; my@mail.com.br [网站] =&gt; nenhum.com.br [telefone] =&gt; 12 55558349 [mensagem] =&gt;águiadeágua[utf8] =&gt;–)1

  

那么......我接下来应该尝试什么?提前谢谢。

1 个答案:

答案 0 :(得分:2)

您的问题的答案取决于您使用该输出的情感:

  1. 在PHP中处理并返回结果/打印html页面

      

    如果您使用<meta charset="utf-8">处理html页面中的给定数据和打印结果,输出将正确显示。

  2. 以PHP格式处理并以纯文本格式打印

      

    如果您想打印像print_r()这样的简单输出,请在脚本开头添加以下行:header('Content-Type: text/plain; charset=utf-8');

  3. 用PHP处理并写入数据库

      

    如果您已将数据库/表格字符集和排序规则设置为正确的值(utf-8),结果将正确插入数据库中(确保在使用DB操作之前执行这些行

  4. mysql_query("SET NAMES 'utf8'", $db_link);

    mysql_query("SET CHARACTER SET utf8", $db_link);

    mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $db_link);