我有一个名为 index.php 的文件,其中包含一个表单,该表单将页面重定向到自身,并等待一些UTF-8
编码数据。我的问题是,通过表单发送的数据被浏览器交换为问号。
以下是代码:
<?php header('Content-Type: text/html; charset=utf-8'); ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<?php
if($_POST["action"] == "insert"){
echo "<pre>";
print_r($_POST);
echo "</pre>";
echo "Some simple UTF-8 text: țșțțáéáéáőúőúőúőúőúőúő";
}
?>
<form accept-charset="UTF-8" class="form-horizontal" role="form" name="myForm" action="index.php" method="post">
<input type="hidden" name="action" value="insert">
<input type="text" name="article_date" class="form-control" size="15" id="article_date" value="">
<input type="text" name="test_field" value="áááéáéáéáéáéá">
<input type="text" name="title" class="form-control" id="article_title" placeholder="Some placeholder" value="">
</form>
</body>
如果我运行这个文件,然后只是发送表单,我得到这个输出:
阵列
(
[action] =&gt;插入
[article_date] =&gt;
[test_field] =&gt;
[title] =&gt;
)
一些简单的UTF-8文本:ţşţţáéáéáőúőúőúőúőúőúő
所以,我从中收集的是,浏览器中的UTF-8编码基本上正常工作,因为普通的UTF-8回显正确显示,但当我尝试通过{{1}发送UTF-8数据时},它没有正确解码。这个问题的可能解决方案是什么?
答案 0 :(得分:0)
php.ini
个文件是否有default_charset = "utf-8";
header('Content-Type: text/html; charset=utf-8');
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
AddDefaultCharset utf-8
是否已设置。IndexOptions +Charset=UTF-8
答案 1 :(得分:0)
试试这个..
我正在使用Notepad ++ ......
首次创建新文件并仅粘贴此代码..
<?php header('Content-Type: text/html; charset=utf-8'); ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
保存文件后关闭它。并查看浏览器...
重要提示:忘记关闭文件并重新打开..
现在再次打开您的文件并粘贴此代码......
<?php
if($_POST["action"] == "insert"){
echo "<pre>";
print_r($_POST);
echo "</pre>";
echo "Some simple UTF-8 text: țșțțáéáéáőúőúőúőúőúőúő";
}
?>
<form accept-charset="UTF-8" class="form-horizontal" role="form" name="myForm" action="index.php" method="post">
<input type="hidden" name="action" value="insert">
<input type="text" name="article_date" class="form-control" size="15" id="article_date" value="">
<input type="text" name="test_field" value="áááéáéáéáéáéá">
<input type="text" name="title" class="form-control" id="article_title" placeholder="Some placeholder" value="">
</form>
</body>
然后保存您的文件并进行检查..
基本上第一次我们的浏览器在上传浏览器工作正常后不了解utf-8 ......
答案 2 :(得分:-1)
进入数据库的数据不会以UTF8格式上传。
确保:
DEFAULT CHARSET=utf8
SET NAMES utf8
或者您应该在数据库连接期间设置charset $mysqli->set_charset("utf8");