2011-05-27 194 views
1

嗨所有在phpinfo頁面我發現字符集是UTF-8。 Content-Type text/html; charset = UTF-8 我想刪除字符集以null在php.ini文件中更改是否可能。我如何設置默認字符集設置爲空在PHP

+0

你有沒有嘗試標題(「Content-Type text/html; charset = ANY_THING_THAT_NOT_STANDARD_CHRSET」)? – MBarsi 2011-05-27 09:39:38

+1

沒有這樣的事情作爲「空字符集」。 – Piskvor 2011-05-27 09:41:47

回答

1

如果您有權這樣做,則可以在每個腳本的基礎上override INI settings。否則,您可以簡單地output an overriding headerheader("Content-type: text/html; charset=ISO-8859-1");或將其直接包含在您的HTML輸出中作爲<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />,顯然,您可以隨意替換ISO-8859-1。

+0

他想成爲一無所有,沒有utf8也沒有iso-8859-1。這對我來說很奇怪,但無論如何... – RRStoyanov 2011-05-27 09:34:55

+0

是的,這對我很有用非常感謝你 – 2011-05-27 10:50:15

2

您可以在文件的頂部設置ini_set("default_charset", "");

1

可以輸出頭設置:

header('Content-type: text/html; charset=YOUR_CHARSET'); 

如果不設置這個頭一個字符集,該瀏覽器將嘗試猜測它自己不推薦。在西方國家,大部分時間猜測是ISO-8859-1或ISO-8859-15。

1
header('Content-Type: text/html'); // note the absence of charset= 

不過請注意,這沒有什麼,如「空字符集」,總有某種字節和字符之間的映射(甚至是ASCII是這樣的映射,而不是自然秩序的東西)。你在做什麼是告訴瀏覽器「我不知道這是什麼字符,只是猜測」 - 這可能會或可能不會選擇實際的字符集。

3

A「空字符集」是相同的ISO-8859-1根據RFC 2616

當沒有明確的字符集參數 由發送方提供的媒體「文本」類型的 亞型是 被定義爲當經由HTTP接收到 時具有「ISO-8859-1」的默認字符集 值。

因此將字符集設置爲ISO-8859-1與不設置任何字符集相同。但是,由於谷歌瀏覽器實施這個錯誤(他們默認爲UTF-8),你應該考慮明確地設置字符集ISO-8859-1(或你使用的任何字符集)。

+0

這在理論上是正確的答案;請注意,由於無數的網頁潦草,這在實踐中並不完全正確;大多數瀏覽器都會進行某種字符集嗅探來確定可能的字符集。 – Piskvor 2011-05-27 09:47:23

+0

大多數瀏覽器在嘗試嗅探字符集時都會錯誤,所以最好的選擇仍然是明確設置它。 – 2011-05-27 09:48:18

+0

明確地設置它確實是最好的;但大部分嗅探實際上都能得到*正確*(因此用戶甚至沒有注意到)。然而,當啓發式失敗時,結果非常明顯,這導致了「通常失敗」的假設。是的,這是一種最後的回退措施,是的,服務器*應該*知道並宣傳它使用的字符集。唉,仍然有破損的網站 - 用戶認爲這是破碎的瀏覽器*。 – Piskvor 2011-05-27 09:52:15