我的html文件開始如下:希伯來文字符不顯示「UTF-8無BOM」唯一「UTF-8」
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
אבגד
如果我編碼我的文檔UTF-8
,它的正確顯示瀏覽器。如果我編碼爲UTF-8 without BOM
(我的理解是更標準),我得到不尋常的字符。
我在做什麼錯?
我的html文件開始如下:希伯來文字符不顯示「UTF-8無BOM」唯一「UTF-8」
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
אבגד
如果我編碼我的文檔UTF-8
,它的正確顯示瀏覽器。如果我編碼爲UTF-8 without BOM
(我的理解是更標準),我得到不尋常的字符。
我在做什麼錯?
您的Web服務器正在聲明編碼爲ISO-8859-1
,並且瀏覽器正在尊重這一點。具有諷刺意味的是,使用字節順序標記向瀏覽器發送一個較強的信號,實際上編碼必須是UTF-8。 (確切的原因是complicated and boring。)
修復您的Web服務器取決於服務器是什麼。如果這是由Apache httpd提供的磁盤上的靜態資源,那麼類似AddCharset UTF-8 .html
的東西將添加標頭。
如果此資源是動態提供的,那麼您應確保在生成響應時添加正確的HTTP標頭,例如用於Python基本http服務器的self.send_header('Content-Type', 'text/html; charset=utf-8')
。
謝謝。我還應該在html中包含字符集還是不必要的冗餘? – pppp
根據https://html.spec.whatwg.org/multipage/semantics.html#character-encoding-declaration,需要一個。使用兩者可能被認爲是多餘的,但可能允許您的文本編輯器使用正確的編碼。 –
Web服務器是否在內容類型頭中指定編碼?這個值是否改變? –
嘗試轉換您的希伯來語文本[here](http://www.online-toolz.com/tools/text-unicode-entities-convertor.php)。我不知道它是否會起作用,但嘗試沒有任何壞處! – Sank6
@JoshLee我在哪裏可以找到? – pppp