2015-04-27 62 views
2

我使用PHP + HTML + smarty(作爲模板)。特殊字符未正確顯示在TEXTBOX中

有一些來自用戶輸入的動態內容。

當用戶輸入一些特殊字符例如—.‘@•時,它已被正確保存在變量中。

但是當我嘗試顯示特殊字符的相同內容textbox(使用智者模板)就說明是這樣的:�.�@�

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> is already included in the Header`。

我已經提到這一點:utf-8 special characters not displaying

其解決方案都沒有爲我工作。

+0

你正在做一些變量,如通過另一個函數? – Augwa

+0

@Augwa:它的MVC結構,所以我將變量從Controller傳遞到View(一個模板)並在'textbox'中顯示它。當我用控制器(.php文件)中的特殊字符回顯該變量時,它顯示正確。但是當我嘗試在smarty-template中顯示相同的東西時,它會顯示這些有線字符。 – Ruprit

+0

它很可能會將它轉換爲ascii,因爲這樣所有的utf-8字符都會丟失。如果沒有更多的信息,我不會對此有更多的瞭解,除非您需要查看數據由smarty模板處理的執行鏈。 – Augwa

回答

0

確保處理字符串的所有內容都支持UTF-8。主要是:

  • 如果你在一個表中顯示它之前存儲字符串,檢查它是否是UTF-8編碼(比如MySQL的,有DEFAULT CHARSET=utf8當你創建表)。

  • 確保視圖文件保存爲UTF-8。在你的文本編輯器中,你通常可以選擇編碼。或者選擇「另存爲...」,然後選擇編碼。

  • 我對Smarty並不熟悉,但要確保它不會將字符串轉換爲某些非UTF8編碼。

+0

是的,db表結構有'DEFAULT CHARSET = utf8'。我正在使用MVC結構,所以當我通過'Controller'將變量傳遞給'View'時,問題就出現了。因爲當我在Controller(.php文件)中用特殊字符回顯變量時,它顯示正確,但不是模板文件。 – Ruprit