[英]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
进行检查。
utf8
和utf8mb4
在这方面没有区别。 表情符号和某些中文需要后者。
“排序规则”(例如utf8_general_ci
)与此讨论无关。 然而, utf8_general_ci
仅适用于utf8
,所以一些评论是毫不含糊的。
摘要:
set_charset
, <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
; HTML5可以缩短它: <meta charset="UTF-8">
(但显然这不是问题)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.