php
  • utf-8
  • 2009-12-09 26 views 0 likes 
    0

    很抱歉,如果這個問題已經是地方,但我需要一個更加之實踐的方法:PHP UTF-8字符集加重

    頁面設置是這樣的:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    

    在PHP以後我使用下面的行

    $v .= "<a href='" . $videoEntry->getVideoWatchPageUrl() . "' rel='vidbox' title='" . $videoEntry->getVideoTitle() . "'><img src='"; 
    

    ...

    $v .= "<td width='52%' height='16'><strong>Visualizações:</strong> " . $videoEntry->getVideoViewCount() . "</td>";

    好的。現在

    當我做

    echo $v; 
    

    伊塔茹巴EM福措Canal20奧菲西納德Cuidados Paliativos(正確)

    Visualizaes:204 //(不正確)

    ,如果我嘗試

    echo utf8_encode($v); 
    

    ItajubÃóem Foco Canal20 Oficina de Cuidados Paliativos //(不正確)

    Visualizações:204 //(正確)

    我試圖使用

    報頭(「內容類型:文本/ HTML;字符集= UTF-8' );

    ,但沒有成功。

    +0

    你從數據庫中獲取文本嗎?如果是這樣,你的標籤和字段在UTF8?連接到數據庫後,您是否執行SET NAMES utf8查詢? – 2009-12-09 15:56:16

    +0

    如果文本來自文本文件,那也必須是utf-8。事實上,如果這是從文本文件進入數據庫,那麼您可能也需要在該階段查看它。 – Cups 2009-12-09 16:02:27

    回答

    1

    沒問題爲UTF-8,但靜態內容你在PHP文件本身不是,這意味着你不保存您的PHP本身文件在文本編輯器UTF-8。可能你已經保存爲Windows代碼頁1252(西歐);一定要改變對保存對話框(爲UTF-8;如果是「UTF-8無BOM」一個單獨的選項選擇,爲UTF-8與-BOM是完全假的)。

    如果你的文本編輯器後得到的符號錯誤的,當它加載文件回來,你需要告訴它默認爲UTF-8模式下加載文件。如果它沒有這個選項,它是垃圾,應該被替換。如果你真的不能代替它,你將在你的源文件和編碼它們放棄Unicode字符,無論是作爲HTML:

    Visualiza&#xE7;&#xF5;es 
    

    或者,特別是在一個PHP字符串文字:

    "Visualiza\xE7\xF5es" 
    

    順便說一句,當你將文本放入HTML時,你需要使用htmlspecialchars,否則你會遇到XSS錯誤。

    +0

    是的,問題出在我的編輯器上。但是...... 當我設置爲UTF-8(withcou BOM)時,「V​​isualizações」變成「Visualizaes」。 – 2009-12-09 16:17:23

    +1

    '變成'?當你將它加載回編輯器?當您在Web瀏覽器中查看PHP輸出時? – bobince 2009-12-09 17:13:31

    1

    確保您使用的編輯器節省了UTF-8的文件!一些這方面的東西似乎是從那裏它被存儲在UTF-8(數據庫來或者做

    mysql_query("SET NAMES utf8"); 
    

    切換到UTF-8的連接。

    如果文本(「Visualizações如果從數據庫中的數據「)不被保存爲UTF-8的編輯器,你應該使用或者你的編輯器或者像另一個工具轉換文件‘的iconv’。

    最良好的祝願,
    費邊

    +0

    如果你的PHP版本支持它,最好使用mysql_set_charset()而不是SET NAMES。通過這種方式,客戶端庫「知道」編碼的更改,並確保mysql_real_escape_string()可以正常工作,http://docs.php.net/mysql_set_charset – VolkerK 2009-12-09 16:03:34

    +0

    並閱讀有關http://dev.mysql上連接編碼的更多信息.com/doc/refman/5.0/en/charset-connection.html – VolkerK 2009-12-09 16:13:19

    相關問題