簡體   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