例如,當我從數據庫中檢索單詞程序而不是程序時會顯示的是程序。 '並且 - 更改爲 。我怎樣才能解決這個問題?php輸出 而不是 -
回答
你是治療CP-1252爲ISO-8859-1。 A very common mistake.使用標準化的utf-8或驗證輸入以確保用戶給出有效的iso-8859-1,當他這樣說時。如果你沒有(例如,你得到cp-1252),你可以將輸入音譯爲iso-8859-1。
存儲在您的數據爲UTF-8?試試你獲取任何數據之前執行這些查詢:
SET NAMES utf8
SET CHARACTER SET utf8
另外,還要確保你設置你的網頁編碼:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" />
替換字符(U + FFFD)意味着你的數據不正確編碼。您可能會將您的輸出聲明爲UTF-8,但您的數據庫數據不是UTF-8編碼。所以你需要將數據轉換爲UTF-8。你可以使用mb_convert_encoding
來做到這一點。
這聽起來像一個字符集的問題,你的數據庫和網頁需要使用相同的字符集(或者你需要將它們之間的轉換)。查看Joel on Software上的this article。這個撇號似乎是一個捲曲的撇號,我的懷疑是短劃線是類似的。
可以通過使用不同的字符例如引起,馬克的房子和馬克的家,平時我從MS Word等文字處理這個角色,討厭
編輯: Whops,我看到堆棧溢出汽車糾正...我的觀點的存在,文字處理機創造不同的角色,當你打省略號按鈕
這是字符編碼的問題的性質:沿線某處的字符編碼被錯誤解釋。以下是您應該檢查的區域,從輸出該頁面開始基本向後工作:
當您輸出頁面時,您應該包含適當的內容類型標題,無論是從服務器(最好)還是從服務器在HTML:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
當您連接到數據庫,您應該發出SET NAMES
查詢,告知將數據發送到你的腳本使用什麼編碼數據庫中(注意,這無關什麼編碼您表使用)。
SET NAMES utf8;
你的表本身應該被定義爲「正確」的字符編碼:
CREATE TABLE foo (...) CHARSET=utf8;
如果您已經創建使用latin1
表,並希望將它們轉換,你必須不僅發出ALTER TABLE
改變CHARSET
而且還改變了CHARSET
每一個文本列(TEXT
,CHAR
,VARCHAR
)。
如果所有這一切似乎是正確的,問題可能出現「在路上」。也就是說,假設您有另一種將這些數據提交給數據庫的表單,您需要更新該表單(Content-Type
和SET NAMES
)。
- 1. php-cli輸出而不是執行
- 2. FAcebook包括PHP腳本而不是PHP輸出
- 3. MIPS輸出0.0而不是輸入
- 4. PHP輸出腳本只是把'行'而不是mysql行?
- 5. 顯示的是PHP代碼而不是輸出
- 6. 店輸出文本,而不是列出
- 7. Html.Raw()輸出是&而不是&
- 8. 刷新PHP的輸出,而不realoading
- 9. 輸出在PHP蟒而不陣列
- 10. 如何顯示PHP代碼而不是顯示輸出?
- 11. PHP getdate()輸出只有一年,而不是當前
- 12. file_get_contents錯誤輸出php的目標,而不是先執行它
- 13. Javascript函數中的PHP變量輸出變量而不是值
- 14. PHP輸出圖像,而不是字符串
- 15. 顯示代碼而不是PHP輸出的HTML表單
- 16. PHP輸出一個正常的問號而不是'或'
- 17. 閱讀PHP腳本而不是JSON輸出的Ajax
- 18. 輸出爲HTML而不是純文本
- 19. 穆寧輸出json而不是圖
- 20. 截圖而不是OpenGL輸出
- 21. JQ:ID而不是數字的輸出值
- 22. js.erb輸出的文本,而不是JS
- 23. 轉換輸出`>`而不是`>`
- 24. PIP3輸出換行,而不是安裝
- 25. OutputDebugString輸出「??????」而不是字符串
- 26. MongoDB:輸出'id'而不是'_id'
- 27. 輸出成爲a2a3而不是a2b3
- 28. 輸出註釋列而不是列名
- 29. Django:輸出JSON,而不是OrderedDict
- 30. 爲什麼輸出2,0而不是2,3?