有什麼好的理由不是在日常開發中使用UTF-8作爲編碼嗎?是否有任何理由不將HTML編碼設置爲UTF-8?
IE:使用<head>...</head>
中的以下標籤是否帶有缺點?
<meta charset="utf-8">
有什麼好的理由不是在日常開發中使用UTF-8作爲編碼嗎?是否有任何理由不將HTML編碼設置爲UTF-8?
IE:使用<head>...</head>
中的以下標籤是否帶有缺點?
<meta charset="utf-8">
有沒有什麼好的理由不使用UTF-8作爲日常開發的編碼?
不是。 UTF-8和日本的老式Webmail服務一樣,都沒有很好地發揮作用,還有一些文本編輯仍然偏愛Windows ANSI代碼頁,但它們正在慢慢消失,大多數人可以忽略它們。
像中文軟件產品那樣的一些法律聲明必須支持令人討厭的舊GB18030,但這並不排除UTF-8支持,或者據我瞭解,影響網站。
儘管其他編碼可以編譯得比UTF-8更小,但通常不會有足夠的差別來處理或抵消Unicode剩餘部分的損失。 UTF-16仍然可以涵蓋所有內容,對於非ASCII的BMP文本,理論上可能會更小......但對於所有ASCII文本(包括標記和空白)的額外長度總是被淹沒的HTML。另外,UTF-16在網絡上無法正常工作。
在任何情況下,你都希望能夠壓縮你的頁面,這將使即使是那麼小的差異接近無效。
<meta charset="utf-8">
是說它的喜愛現代的方式,而是在舊的瀏覽器更廣泛的支持我還是會去的:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
由於這種提示,你實際上做的是假裝的HTTP標頭與字符集一起發送。因此,您還需要確保沒有實際的 HTTP Content-Type ... charset參數,因爲真正的頭部參數超過了HTML'meta'-hack。 Apache AddDefaultCharset
指令有時不明智地用於給你一個你可能不想要的charset
。
它並不重要,因爲它大部分時間都會被忽略,通常會使用HTTP Content-Type標頭。我也認爲它會在舊版瀏覽器中被忽略。
這真的歸結爲您在頁面上顯示的字符。
這裏有一個很好的文章通過這樣的聯合創始人喬爾·S:http://www.joelonsoftware.com/articles/Unicode.html
但是,爲了安全起見,它似乎是迄今爲止用UTF-8進行編碼的最好方法。 –
如果該頭實際上包含一個'charset'參數,那麼Content-Type頭只會覆蓋meta元素。這取決於服務器配置,但通常是靜態頁面,它不。 – bobince