2011-04-15 100 views
1

我創建了一個rails應用程序,其中我顯示任何類型的名稱,名稱可以是任何人,汽車,蔬菜,任何材料。法國字符在頁面上無法正常顯示3.0.3

所以我想包括一些成分名稱,如CrèmeFraîche,只要我從其他網頁複製這個名稱並存儲在我的數據庫中,它就會正確地存儲它。

在網頁上顯示這個名字時,我在網頁上看到一些奇怪的字符,如Cr meFra che。

我已經使用了字符集UTF-8,然後它也顯示了這樣的名字。

我檢查了我的數據庫名稱是正確存儲的,但是在頁面上並且在irb中它顯示了這樣的名字。

我在搜索上述問題上浪費了近5天的時間,但沒有成功。 我希望這一次我會得到一些幫助

在此先感謝 潘卡

回答

4
  1. 包括在你的頁面的部分下面的meta標籤

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 
    

    這告訴瀏覽器使用ISO編碼解釋頁面上的文本

  2. 即使在網頁中使用正確的編碼,字符仍然會在未安裝所需字體的計算機上顯示損壞,顯然,您無法確定在查看您的頁面的計算機上安裝了哪些字體。

  3. 瀏覽器可能還需要進行配置。例如,需要在選項/工具/內容部分中告知Firefox默認使用上述字符集

  4. 爲了確保您的字符能夠正確顯示,請爲每個非標準字符使用明確的HTML代碼,例如代替Crème使用Cr & egrave;我(注意,在「&」和「;」之間不應該有空格 - 我必須以這種方式鍵入它來阻止此頁面解釋代碼並顯示è)。

    這可能會影響網絡搜索和數據庫中的排序功能。您可以將文本作爲Crème存儲在數據庫中,並在將所有內容傳遞到HTML頁面之前通過轉換函數傳遞(這顯然會在獲取頁面時稍稍延遲)。您可能還會考慮擁有兩種版本的數據,即原始數據版本和顯示版本。然後,您可以通過轉換函數傳遞新數據,存儲轉換後的版本並將轉換後的數據寫入HTML頁面。