我正在设置一个新服务器,并希望在我的Web应用程序中完全支持UTF-8.我过去曾在现有的服务器上尝试过此操作,但最终似乎不得不回归ISO-8859-1.
我在哪里需要设置编码/字符集?我知道我需要配置Apache,MySQL和PHP来执行此操作 - 是否有一些我可以遵循的标准清单,或者可能是在出现不匹配的地方进行故障排除?
这适用于运行MySQL 5,PHP,5和Apache 2的新Linux服务器.
过去几个小时我一直在尝试寻找解决方案,但未能成功。我已经尝试了互联网和这个论坛上的所有可能的解决方案,但似乎没有任何效果。问题就在这里。
我想存储用户将在 mysql 数据库中表单的文本区域中键入或粘贴的阿拉伯数据。该网站是阿拉伯语的,表单仅包含这一文本区域。
要点:
该网站正确显示静态阿拉伯语内容。整个网站都使用 utf8 字符集。所以这不是问题。
表( home )和内容字段( content )都设置为 utf8_unicode_ci 排序规则,因此这也不是问题。
表单设置为accept-charset='utf-8',所以这也不是问题。
当我在表中使用 phpMyAdmin 插入阿拉伯文本时,我完全没有任何问题。
事实上,当在网站上检索表中的阿拉伯文本(通过 phpMyAdmin 输入)时,它会完美显示。
但是,一旦在文本区域中输入阿拉伯语数据并发送到数据库以使用插入查询进行存储,数据就会转换为????
我在用
mysql_query("SET NAMES 'utf8'");
mysql_query('SET CHARACTER SET utf8');
Run Code Online (Sandbox Code Playgroud)
连接后所以这根本不是问题。正如我之前所说,数据可以正常检索。我已经上传了两张图片。展示我的问题。
我真的被困在这里,正如你所看到的,我也采取了所有可能的步骤来解决这个问题,但这种行为真的很奇怪。请帮忙。
我用来将数据插入数据库的代码是:
$content=$_POST["content"];
echo $content;
$sql="update home set content='$content'";
$result=mysql_query($sql) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
您可以看到第二个 echo 语句。我添加它是为了调试问题。数据在此回波中完美显示。我想问题是在查询中出现的。