2017-03-22 67 views
0

我有一個非常簡單的表單,需要textarea並將內容放入MySQL數據庫中,然後網站顯示該信息。到目前爲止,一切都運行良好,包括特殊字符如撇號和子彈,然而,突然間現在撇號導致表單錯誤,子彈顯示爲:•突然出現而不是子彈

所有頁面都被元編碼爲UTF-8,數據庫歸類爲UTF-8,文本區域字符串正在由utf8_encode命令處理。

什麼可能導致這種突然發生?

我一直在這裏尋找答案,我只能找到人們在數據庫或網頁/表單上缺少UTF-8的情況。我唯一的假設是由主機更新PHP版本,但是,我不能確認,因爲他們使用專有系統,不讓我看到當前運行的版本號,我不知道它是否會以這種方式受到影響。

如果很重要,textareas總是包裝在HTML預標籤中進行格式化。

回答

0

檢查了幾次,一切都被正確編碼後,我結束了嘗試以下解決方案:

通過我的文字區域內的數據到MySQL數據庫之前,我跑了這一點:

mb_convert_encoding(textareacontents, "HTML-ENTITIES", "UTF-8") 

我後跑了那條線開始工作。我不完全確定爲什麼這個mobijake問題是隨機發生的,特別是所有正確的字符集都已經存在,但是,這似乎有所幫助。希望這可以幫助有人陷入困境。

1

當談到char編碼時,我顯然有點落後 - 確保你正確地聲明瞭字符集。

https://www.w3.org/International/questions/qa-html-encoding-declarations

HTML5只需要<meta charset="utf-8">。如果您使用此功能,請確保您還在HTML的頂部使用<!DOCTYPE html>,否則可能會遇到HTML4問題,其中<meta charset="utf-8">無效。

+0

這是倒退,你應該使用utf8。你引用一個7歲的問題。我們從那以後一直在繼續。 – nogad

+0

謝謝@nogad,更新。過了一段時間,因爲我看到這個問題出現了。 –

+0

檢查了我所有的編碼,不幸的是沒有骰子。 – CdnXxRRODxX

1

•是子彈的Mojibake。使用this找出你做錯了什麼。

+0

我經歷了指導,以確保我沒有錯過任何東西,但是,我的mobijake問題仍然存在。然而,我將會使用你的鏈接文章作爲未來的參考,因爲那裏有一些很好的信息。 – CdnXxRRODxX

+0

花了我多年的時間來收集和簡化那個環節。我有興趣聽聽最終的原因是什麼;也許我的鏈接有問題。 –

+0

我剛剛發佈了我對此主題的回答。坦率地說,我認爲主辦方發生了一些事情,我正在補償他們改變的事情,因爲在這個問題出現的時候有一些停工。我不是很瞭解任何東西,但編碼的基礎知識,所以我可能是錯的。 – CdnXxRRODxX