Веб-страницы, обслуживаемые местным IIS с черными бриллиантами с вопросительными знаками - PullRequest
0 голосов
/ 15 марта 2019

У меня проблема в приложении .NET, где на страницах, обслуживаемых локальным IIS, отображаются случайные символы (в основном черные ромбы с белыми вопросительными знаками на них).Это происходит в Chrome, Firefox и Edge.IE по какой-то причине корректно отображает страницы.

Во всех моих браузерах работают одни и те же страницы в рабочей среде и в средах с более низким уровнем производительности.Это сугубо локальная проблема.

Вот что я пробовал:

  • Удалил код и повторно клонировал (также пытался переключать ветки)
  • Отключил все браузерыextensions
  • Запуск в режиме инкогнито
  • Перезагрузка (вы никогда не знаете)
  • Удаленные временные файлы ASP.NET
  • Поиск поврежденных шрифтов на компьютере, но не 't найти любое

Другая информация:

  • Запуск IIS 10.0.17134.1
  • .NET MVC с Knockout

Я понимаю, что есть еще несколько сообщений о черных бриллиантах с вопросительными знаками, но ни одна из них, похоже, не касается моей проблемы.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 16 марта 2019

Вам повезло. Явная цель состоит в том, чтобы указать, что кодировки символов используются неправильно. Когда пользователи увидят это, они узнают, что мы испортили и потеряли некоторые из их текстовых данных, и мы узнаем, что в один или несколько моментов наша обработка и / или конфигурация неверны.

(Шрифты не обсуждаются [если только нет шрифта, доступного для рендеринга.]. Когда нет шрифта, доступного для символа, он обычно отображается в виде белого прямоугольника.)

Основы кодировки символов просты: используйте достаточный набор символов (скажем, Unicode), выберите подходящую кодировку (скажем, UTF-8), закодируйте текст с ним для получения байтов, сообщите каждой программе и человеку, который получает байты, которые они представляют текст и какая кодировка используется. Кодировка может быть понята из стандарта, соглашения или спецификации.

  • Ваш редактор выполняет фактическую кодировку.

  • Если файл является частью проекта или подобной системы, файл проекта может хранить предполагаемую кодировку для всего или каждого текстового файла в проекте. Если ваш редактор - IDE, он должен понимать, как проект делает это.

  • Ваш компилятор должен знать кодировку каждого текстового файла, который вы ему даете. Система проекта будет передавать то, что знает.

  • HTML предоставляет дополнительный способ передачи кодировки. Пример: <meta charset="utf-8">. Редактор с поддержкой HTML не должен допускать, чтобы этот индикатор отличался от кодировки, которую он использует при сохранении файла. HTML-редактор может обнаружить этот индикатор при открытии файла и использовать указанную кодировку для чтения файла.

  • HTTP использует другой необязательный способ: заголовок ответа Content-Type. Веб-сервер испускает это либо статически, либо в сочетании с выполняемым им кодом, например ASP.NET.

  • Веб-браузеры используют HTTP-способ, если он указан.

  • XHR (AJAX и т. Д.) Использует HTTP наряду с обработкой JavaScript. При необходимости при обработке JavaScript следует применять правила HTTP и HTML, в зависимости от ситуации. Примечание. Если содержимое имеет формат JSON, текущий RFC требует кодировки UTF-8.

Никто или вещь не должны догадываться.

Диагностика

  • Какую кодировку символов вы намеревались использовать? В этом столетии UTF-8 является настолько нормой, что, если вы решите использовать другую, у вас должна быть веская причина и задокументировать ее (для других и вашего будущего Я).

  • Сравните байты в файле с текстом, который вы ожидаете представить. Использует ли он предполагаемую кодировку? Используйте редактор или инструмент, который показывает байты в шестнадцатеричном виде.

  • Как подсказывает @snakecharmerb, что отправляет сервер? Используйте вкладку сети F12 веб-браузера.

    • Что говорит заголовок ответа HTTP, если что?
    • Что говорит метатег HTML, если что?
    • Что такое HTML-тип документа, если таковой имеется?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...