我在.NET应用程序中遇到问题,本地IIS服务的页面显示随机字符(大多数是黑色菱形,其中带有白色问号)。这发生在Chrome,Firefox和Edge中。 IE由于某些原因会正确显示页面。
在生产环境和生产前环境较低的环境中,相同的页面可以在我的所有浏览器中使用。严格来说,这是一个本地问题。
这是我尝试过的:
其他信息:
我意识到还有其他几篇关于带问号的黑钻石的帖子,但似乎都没有解决我的问题。
如果您需要更多信息,请告诉我。
感谢您的帮助!
答案 0 :(得分:0)
您很幸运。 �的明确目的是指示字符编码被滥用。当用户看到这些消息时,他们会知道我们搞砸了并且丢失了一些文本数据,并且我们将知道,在一个或多个点上,我们的处理和/或配置是错误的。
(字体没有问题[除非没有可用的字体来呈现。]。当没有可用的字体时,通常将其呈现为白色填充的矩形。)
字符编码的基本原理很简单:使用足够的字符集(例如Unicode),选择适当的编码(例如UTF-8),使用文本编码以获得字节,告诉每个程序和人都获得了它们代表的字节文字以及使用哪种编码。可以从标准,约定或规范中了解编码。
您的编辑器进行实际编码。
如果文件是项目或类似系统的一部分,则项目文件可能会存储项目中所有或每个文本文件的预期编码。如果您的编辑器是IDE,则它应该了解项目是如何做到的。
您的编译器需要知道您提供的每个文本文件的编码。项目系统将传达其所知。
HTML提供了一种可选的方式来传达编码。示例:<meta charset="utf-8">
。支持HTML的编辑器不应允许该指示符与保存文件时使用的编码不同。支持HTML的编辑器在打开文件时可能会发现此指示符,并使用指定的编码来读取文件。
HTTP使用另一种可选方式:Content-Type响应标头。 Web服务器以静态方式或结合其运行的代码(例如ASP.NET)发出此消息。
Web浏览器使用HTTP方式(如果提供)。
XHR(AJAX等)将HTTP与JavaScript处理一起使用。如果需要,JavaScript处理应酌情应用HTTP和HTML规则。注意:如果内容为JSON,则当前RFC要求编码为UTF-8。
没有人或事物应该猜测。
您打算使用哪种字符编码?在本世纪,UTF-8非常普遍,如果您选择使用其他标准,则应该有充分的理由并记录下来(对于他人和您将来的自己)。
将文件中的字节与您希望它代表的文本进行比较。它使用预定编码吗?使用以十六进制显示字节的编辑器或工具。
如@snakecharmerb所建议,服务器发送什么?使用网络浏览器的F12网络标签。