簡體   English   中英

application / * Content-Type和charset屬性

[英]application/* Content-Type and charset attributes

RFC-2616在3.7.1中說明:

當發送方未提供顯式字符集參數時,“文本”類型的媒體子類型被定義為在通過HTTP接收時具有默認字符集值“ISO-8859-1”。

這就是為什么我通常使用例如text/plain; charset=utf-8 text/plain; charset=utf-8作為Content-Type標題。

application類型的MediaTypes怎么樣?

我經常看到像Content-Type: application/xml; charset=UTF-8這樣的頭文件Content-Type: application/xml; charset=UTF-8 Content-Type: application/xml; charset=UTF-8 RESTeasy 2.3.7然后強制客戶端也在Accept標頭中發送charset參數。 否則它將以406回答。 RESTeasy 3.0.6在這里似乎更寬容,所以我不確定這里的最佳做法是什么。

RFC 2616在2014年6月被一組RFC淘汰,其中包含一般HTTP規范的RFCRFC 7213 請使用RFC編輯器檢查RFC的當前狀態。

RFC 7213明確指出(在附錄B中):

ISO-8859-1的默認字符集用於文本媒體類型
刪除; 現在默認是媒體類型定義所說的。

另一方面, RFC 6657雖然預見到了這些變化,但聲明:

“text / plain”的默認“charset”參數值與[RFC2046]保持不變,並保持為“US-ASCII”。

因此,如果您的數據不是ASCII(= US-ASCII),則應該明確聲明charset參數。

XML規范,第4.3.3節 ,規定:

在沒有外部字符編碼信息(例如MIME頭)的情況下,以UTF-8或UTF-16以外的編碼存儲的解析實體必須以包含編碼聲明的文本聲明開頭。

因此,對於通過HTTP傳輸的XML,無論內容類型如何,編碼必須在HTTP頭或編碼聲明中明確設置,例如<?xml encoding='UTF-8'?>

對於一般的application類型,可能適用特定於類型的規則。 字符編碼與大多數application類型無關,因為類型定義了自己的編碼方案,包括任何嵌入字符數據的編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM