如果我写一个指定charset的html元标记为UTF-16
,我觉得有点像鸡蛋和鸡蛋问题 - 就像我们如果没有这样做我们如何首先解码整个HTTP请求知道它的UTF-16 data
?我相信请求标头需要处理这个问题,当我们尝试读取像html标记charset="utf-16"
之类的元数据时,我们已经知道它的UTF-16
。
除了认为标题信息(如请求标题)更高一级之外,还会以ASCII作为标准传递?
我的意思是在某种程度上我们需要达成一致意见,您无法设置解码为元数据信息所需的数据。任何人都可以澄清这个吗? 我对指定将整个数据解释为原始数据中的元数据信息所需的数据感到困惑。
一般来说,如果我们没有标准的语言/编码协议来传达有关数据本身的数据,那么任何形式的编码如何工作?
例如,我被告知Apache默认以8859-1
为标准。那么,如果我们想要UTF-8
UTF-8
,那么所有客户都需要强制执行HTTP标头并将实际内容解释为content-type
吗?
What character encoding should I use for a HTTP header?是一个密切相关的问题
答案 0 :(得分:1)
UTF-16(和其他)编码使用在文件开头读取的BOM (Byte Order Mark),它表示正在使用哪种编码。只有在那之后,文件的编码部分才开始。
例如,对于UTF-16,如果使用big-endian,则会有FE FF
字节;如果使用little-endian字,则会FF FE
。
您还经常看到UTF-8 BOM,虽然它们不需要使用(并且可能会混淆一些XML解析器)。