嗨,我正在 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
检查。
utf8
和utf8mb4
在这方面没有什么不同。表情符号和一些中文需要后者。
“排序规则”(例如 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/