例如,當我從數據庫中檢索單詞程序而不是程序時會顯示的是程序。 '並且 - 更改爲 。我怎樣才能解決這個問題?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. MIPS輸出0.0而不是輸入
- 3. 顯示的是PHP代碼而不是輸出
- 4. PHP輸出腳本只是把'行'而不是mysql行?
- 5. 店輸出文本,而不是列出
- 6. 如何顯示PHP代碼而不是顯示輸出?
- 7. PHP getdate()輸出只有一年,而不是當前
- 8. PHP輸出一個正常的問號而不是'或'
- 9. 如何輸出名稱而不是ID?
- 10. 轉換輸出`>`而不是`>`
- 11. PIP3輸出換行,而不是安裝
- 12. OutputDebugString輸出「??????」而不是字符串
- 13. scrollTop輸出而不是設置?
- 14. BeautifulSoup - 而不是預期的輸出
- 15. js.erb輸出的文本,而不是JS
- 16. 輸出註釋列而不是列名
- 17. 爲什麼輸出2,0而不是2,3?
- 18. Django:輸出JSON,而不是OrderedDict
- 19. 配置的Rails輸出HTML輸出,而不是XHTML
- 20. 如何捕獲Zend視圖輸出而不是實際輸出
- 21. 看到模擬輸出賽靈思而不是數字輸出
- 22. TextWriterTraceListener(調試輸出)VS'輸出',而不是控制檯
- 23. PHP導出爲CSV而不是JSON
- 24. PHPヶ輛()對輸入信號DB插入之前,而不是在輸出
- 25. printf不輸出到標準輸出,而是輸出到函數。爲什麼?
- 26. PHP - JSON不輸出
- 27. PHP輸出緩衝區不是空的?
- 28. for循環總是返回輸出4444而不是1111在php中
- 29. Xhtml而不是Php?
- 30. 希望輸出爲json而不是陣列,而使用條件