Browser 为什么网络浏览器中会出现问号?

Browser 为什么网络浏览器中会出现问号?,browser,unicode,utf-8,Browser,Unicode,Utf 8,我(重新)阅读时发现了这一段,我不太理解: 例如,您可以为Hello(U+0048)编码Unicode字符串 U+0065 U+006C U+006C U+006F)或旧的OEM希腊编码, 或者希伯来文ANSI编码,或者几百种 到目前为止,这些字母都被发明出来了,但有一个缺点:有些字母可能 不要出现!如果Unicode代码点没有等价物 您试图用您试图表示的编码来表示 在这方面,你通常会得到一个小问号:?或者,如果你真的 好的,一个盒子。你得到了什么?->� 为什么会有一个问号,他说的“或者,如果

我(重新)阅读时发现了这一段,我不太理解:

例如,您可以为Hello(U+0048)编码Unicode字符串 U+0065 U+006C U+006C U+006F)或旧的OEM希腊编码, 或者希伯来文ANSI编码,或者几百种 到目前为止,这些字母都被发明出来了,但有一个缺点:有些字母可能 不要出现!如果Unicode代码点没有等价物 您试图用您试图表示的编码来表示 在这方面,你通常会得到一个小问号:?或者,如果你真的 好的,一个盒子。你得到了什么?->�


为什么会有一个问号,他说的“或者,如果你真的很好,一个盒子”是什么意思?他想显示什么字符?

有一个问号,因为编码过程认识到编码不能支持字符,而是用问号代替。“如果你真的很棒,”他的意思是,“如果你有一个更新的浏览器和适当的字体支持,”你会得到一个更奇特的替代字符,一个方框


在Joel的例子中,他并没有试图显示一个真实的字符,他实际上包含了Unicode替换字符

正如它所说的-一些浏览器显示“一个奇怪的字符”或当前已知字符集之外的字符的问号。这是他们的“嘿,我不知道这是什么”角色。获取旧版本的Netscape,粘贴一些使用智能引号的MicrosoftWord文本表单,您将得到问号


有一个像样的解释。

这是一个相当混乱的段落,我真的不知道作者想说什么。无论如何,不同的浏览器(和其他程序)处理字符问题的方式不同。问号“?”可能会出现在正在使用的字体中没有字形的字符的位置,因此它实际上表示“我无法显示该字符”。出于相同的目的,浏览器也可以使用小矩形或其他指示器

但是"�” 符号是替换字符,通常用于指示数据错误,例如,当字符数据从某种编码转换为Unicode时,它包含一些无法用Unicode表示的字符。浏览器通常使用“�” 在相关用途的显示中:表示字符数据的格式不正确,在所应用的字符编码中包含不构成字符的字节。当某些编码中的数据被当作其他编码处理时,通常会发生这种情况


所以“�” 它的意思不是“未知字符”,更不是“无法显示的字符”,而是“不是字符”.

如果原始数据中的字节序列与数据的字符集不匹配,因此无法正确解码,则会出现问号。如果数据格式不正确,如果数据的字符集在HTTP标头或HTML本身中明确说明不正确,则当其他信息缺少字符集,或者用户的浏览器设置使用不兼容的字符集覆盖数据的字符集


当用于显示数据的字体中不存在解码字符时,会出现一个框。

我使用的是最新版本的Chrome,它显示的是问号,而不是框。他可能指的是什么“较新的浏览器?”:)我添加了“和字体支持”你在什么操作系统上使用Chrome?我在Win7上使用Chrome,我看到带问号的钻石……几年后……我才意识到那篇文章的作者是stack overflow的CEO:)