title: 浏览器根据charset判断编码方式的疑问？
desc: 服务器返回html对应的二进制数据，前端获得后，根据meta中的charset来把二进制数据解码成对应的文本，然后根据content-type来设置呈现的形式，比如texthtml和textplain就有本质的不同。我很好奇的一点是，浏览器是根据charset判断编码方式，而charset里面的字段又是经过二进制解码而来的，变成了鸡生蛋的问题？可能是我哪里理解错了，求解答..
topic: Web 开发
content: 你并没有理解错，这确实有鸡生蛋的问题，因此在开始的时候是需要先猜测文档的字符编码的。先说 content-type，现代浏览器都是根据服务器发送的 Content-Type http头来的，少数情况会考虑其他因素（如由scriptstylelink标签发起的请求）。以前也有基于内容嗅探的，但存在安全隐患，因此现在都不用了。然后说字符编码，首先 Content-Type 头里可以指定字符编码，如果没有指定，那么就要根据内容来猜，比如如果有 Byte order mark
answerer_tags: Web开发者