繁体   English   中英

PHP中的字符编码错误

[英]Character encoding error in Php

嗨,我在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 RIGHT SINGLE QUOTATION MARK ,这通常不在计算机界使用。 (您可能是从某些Word处理包中获得的。)

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"> (但显然这不是问题)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM