我在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="✓" />
但他们似乎没有工作,如果尝试提交“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
那么......我接下来应该尝试什么?提前谢谢。
答案 0 :(得分:2)
您的问题的答案取决于您使用该输出的情感:
在PHP中处理并返回结果/打印html页面
如果您使用
<meta charset="utf-8">
处理html页面中的给定数据和打印结果,输出将正确显示。
以PHP格式处理并以纯文本格式打印
如果您想打印像
print_r()
这样的简单输出,请在脚本开头添加以下行:header('Content-Type: text/plain; charset=utf-8');
用PHP处理并写入数据库
如果您已将数据库/表格字符集和排序规则设置为正确的值(utf-8),结果将正确插入数据库中(确保在使用DB操作之前执行这些行
mysql_query("SET NAMES 'utf8'", $db_link);
mysql_query("SET CHARACTER SET utf8", $db_link);
mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $db_link);