Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html xml 1.0 ISO-8859-1的许多浏览器都取代了不间断空格_Html_Xml_Character Encoding - Fatal编程技术网

Html xml 1.0 ISO-8859-1的许多浏览器都取代了不间断空格

Html xml 1.0 ISO-8859-1的许多浏览器都取代了不间断空格,html,xml,character-encoding,Html,Xml,Character Encoding,我最近在IE、Chrome、Forefox(Windows7和Android)上看到一个页面,它在许多地方的单词之间有空格,被?取代 通过记事本++中的十六进制视图和web搜索,我发现这些?是发生错误时的替换字符(未知符号)。我打开页面时,通过Fiddler嗅探以检查原始内容,因为页面的初始保存导致不同浏览器的文件中出现不同的符号,并确认符号为xA0(不间断空格),就我正确读取的具有该编码的文档的put而言 当我保存fiddler的响应主体并打开它时,非中断空格在浏览器中正确显示为空格。请帮助理

我最近在IE、Chrome、Forefox(Windows7和Android)上看到一个页面,它在许多地方的单词之间有空格,被
取代

通过记事本++中的十六进制视图和web搜索,我发现这些
是发生错误时的替换字符(未知符号)。我打开页面时,通过
Fiddler
嗅探以检查原始内容,因为页面的初始保存导致不同浏览器的文件中出现不同的符号,并确认符号为xA0(不间断空格),就我正确读取的具有该编码的文档的put而言


当我保存fiddler的响应主体并打开它时,非中断空格在浏览器中正确显示为空格。请帮助理解,如果此页面是从web加载的,为什么会在HTTP响应
文本/html中显示

内容类型标题;charset=utf-8
胜过xml声明编码。xA0对UTF-8无效,它必须是一对
{xC2,xA0}
的非中断空格。

谢谢。为什么会这样?据我所知,这个页面是很久以前制作的,它能起到粘合作用吗?它的规范部分在html规范中,部分在规范中HTTP和html几乎是独立的规范。如果HTTP头是错误的,那么它就是错误的。HTML规则在字符编码尚未通信时适用。@AlexeiMartianov-仅关闭默认字符集可能不够。由于在
text/html
中忽略了xml声明,因此浏览器没有关于要使用哪个字符集的信息,并且会根据浏览器在世界上的位置进行猜测。因此,在美国,这可能会很好地发挥作用,而在中国,同样的情况可能不会发生。.htaccess文件确实应该设置为肯定地将该文件标识为ISO-8859-1或WIN1252。@AlexeiMartianov-嗯,该文件看起来像是尝试使用XHTML失败。(Web开发人员大约在2003年做了很多这方面的工作)当时人们对什么是XHTML和什么不是XHTML有很多误解。因为当时最重要的浏览器是IE,而IE不支持XHTML,所以很多页面都像XHTML一样编写,但实际上浏览器将其视为普通HTML。这并不能解释为什么作者认为它是好的。我的猜测是,页面最初在其服务器上工作,但在某个时候被移动到了另一个服务器,或者服务器被重新配置,页面没有重新检查。