php - Php中的字符编码错误

标签 php html mysql encoding

嗨,我正在 mysql 列中存储一些文本。我收到的错误是,每当文本中存在撇号 (') 时,即使撇号显示在数据库中,它也会显示为 '– 任何想法会是什么错误?我已经花了好几天了,但没有运气

您可以在此处检查错误:http://beta.writiely.com/

这里是如何连接和获取结果

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * from textDocs";
$result = $conn->query($sql);

$res = array();
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
array_push($res,array('t'=>$row['t'],'co'=>$row['cover'],
     'text'=>$row['txt']));
    }
} else {
    return false;
}
$conn->close();

最佳答案

’是 utf8 的 Mojibake RIGHT SINGLE QUOTATION MARK ,这在计算机界通常不使用。 (您可能从某些文字处理包中获得它。)

htmlentities 不应与此讨论相关。如果网页有’ ,你有一个大烂摊子。我不认为它有’根据你所说的。

是的,$conn->set_charset("utf8");是需要的。这通常是解决此类问题的方法。

但是,您还需要表/列为 CHARACTER SET utf8 , 是吗?做SHOW CREATE TABLE检查。

utf8utf8mb4在这方面没有什么不同。表情符号和一些中文需要后者。

“排序规则”(例如 utf8_general_ci )与本讨论无关。然而,utf8_general_ci仅适用于 utf8 ,所以有些评论是明确的。

摘要:

  • 你的字节显然是utf8,
  • 执行set_charset ,
  • 检查表格/列,
  • HTML4 需要 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> ; HTML5 可以缩短它: <meta charset="UTF-8"> (但显然这不是问题)。

关于php - Php中的字符编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35995310/

相关文章:

php - 需要转换日期并在mysql中进行比较

MySQL 删除所有 id 大于给定数字的行

sql - 基本的 SQL 东西……左连接

sql - 如何使用 mysql 连接 3 个表

javascript - 根据标题选择行

html - 当上面有多行文本时如何对齐多个div

php - 如何在没有 setinterval 或加载函数的情况下从 mysql 中获取记录并检查更新

php - 无法使用 Yii::log 在 linux 中写入日志?

javascript - 使用 Cookie 向自己发送 POST 表单,适用于移动设备吗?

javascript - jQuery MouseEnter/Leave with fadeIn() 闪烁