[英]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.