我遇到了一个字符编码问题,网页在本地运行良好但一旦上传到远程服务器就无法正常工作。
我有一个简单的textarea,用于更新MySQL数据库行和一些UTF-8编码文本。这些页面是HTML5并使用utf-8编码。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
...
此外,我的数据库和表格使用 utf8数据库字符集和 utf8_general_ci数据库整理进行编码。
当我提交表单并使用数据库中的信息查看更新的textarea时,我看到它有混乱的字符。在本地(但连接到同一个远程数据库),一切都很好。
这是textarea
<textarea class="form-control" name="info" required><?=htmlentities(getInfo($mysqli));?></textarea>
输出结果的功能
function getInfo ($mysqli) {
if ($result = $mysqli->query("SELECT info FROM settings LIMIT 1")) {
$row = $result->fetch_assoc();
$result->free();
}
return $row["info"];
}
我的印象就像我的远程Web服务器以某种方式覆盖了charset信息,所以我尝试添加到我的.htaccess:
AddDefaultCharset utf-8
但这似乎没有用。
可能导致我的文字显示的可能原因是什么? 这就是我在本地,SAME代码和SAME远程数据库中看到的内容。
在Chrome开发人员标签中的“网络”下,似乎“响应标头”正确无误:
Content-Type:text/html; charset=utf-8