[英]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規范的RFC是RFC 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.