本地IIS提供的网页显示带有问号的黑色钻石

问题描述 投票:0回答:1

我在.NET应用程序中遇到问题,本地IIS提供的页面显示随机字符(大多数是带有白色问号的黑色钻石)。这种情况发生在Chrome,Firefox和Edge中。 IE出于某种原因正确显示页面。

生产中和较低预生产环境中的相同页面适用于我的所有浏览器。这绝对是一个本地问题。

这是我尝试过的:

  • 删除代码并重新克隆(也尝试过切换分支)
  • 禁用所有浏览器扩展
  • 以隐身模式运行
  • 重启(你永远不知道)
  • 删除了临时ASP.NET文件
  • 在机器上查找损坏的字体但没有找到任何

其他信息:

  • 运行IIS 10.0.17134.1
  • 使用Knockout的.NET MVC应用程序

我发现还有其他一些关于带有问号的黑色钻石的帖子,但它们似乎都没有解决我的问题。

如果您需要更多信息,请与我们联系。

谢谢你的帮助!

iis browser character-encoding localhost
1个回答
0
投票

你很幸运。 的明确目的是表明字符编码被滥用。当用户看到它时,他们会知道我们搞砸了并丢失了一些文本数据,我们就会知道,在一个或多个点上,我们的处理和/或配置是错误的。

(字体不存在问题[除非没有可用于渲染的字体 ]。当没有可用于字符的字体时,它通常呈现为白色矩形。)

字符编码基础很简单:使用足够的字符集(比如Unicode),选择适当的编码(比如UTF-8),用它来编码文本以获取字节,告诉每个程序和获取它们代表文本的字节的人以及使用编码。可以从标准,约定或规范来理解编码。

  • 您的编辑器执行实际编码。
  • 如果文件是项目或类似系统的一部分,则项目文件可能存储项目中所有或每个文本文件的预期编码。如果您的编辑器是IDE,它应该了解项目是如何做到的。
  • 您的编译器需要知道您提供的每个文本文件的编码。项目系统将传达它所知道的内容。
  • HTML提供了一种可选的通信方式。示例:<meta charset="utf-8">。支持HTML的编辑器不应允许此指示符与保存文件时使用的编码不同。打开文件并使用指定的编码读取文件时,HTML-aware编辑器可能会发现此指示符。
  • HTTP使用另一种可选方式:Content-Type响应头。 Web服务器静态地或与它运行的代码(例如ASP.NET)一起发出。
  • 如果给定,Web浏览器使用HTTP方式。
  • XHR(AJAX等)使用HTTP和JavaScript处理。如果需要,JavaScript处理应适当地应用HTTP和HTML规则。注意:如果内容是JSON,则当前RFC要求编码为UTF-8。

没有人或事物应该猜测。

Diagnostics

  • 您打算使用哪种字符编码?本世纪,UTF-8是如此常规,如果你选择使用不同的,你应该有一个很好的理由并记录它(对于其他人和你未来的自我)。
  • 将文件中的字节与您希望它表示的文本进行比较。它是否使用所谓的编码?使用以十六进制显示字节的编辑器或工具。
  • 正如@snakecharmerb所建议的那样,服务器发送了什么?使用Web浏览器的F12网络选项卡。 如果有的话,HTTP响应标头会说什么? HTML元标记说什么,如果有的话? 什么是HTML文档类型,如果有的话?
© www.soinside.com 2019 - 2024. All rights reserved.