В службе веб-приложений Azure иногда получают символ � (# 65533), но затем все возвращается на круги своя, это одна и та же страница. - PullRequest
0 голосов
/ 12 февраля 2019

Веб-ссылка

Проблема:

В службе веб-приложений Azure иногда получают символ � (# 65533), но затем все возвращается на круги своя, они 'Это та же страница, и это нормально для локального сервера iis.

символ � (# 65533) версия:

...這���種假物件...

нормальная версия:

...這兩種假物件...

Среда:

Web.Config: <globalization requestEncoding="utf-8" responseEncoding="utf-8" />

Сервер: Microsoft-IIS / 10.0, Asp.NET 4.5.2

FrameWork: BlogEngine.NET

Мой вопрос:

Это проблема Azure или какой-то один параметр Azure?

1 Ответ

0 голосов
/ 12 февраля 2019

Я думаю, что это связано с BlogEngine.NET реализацией.В CompressionModule.cs # L189 он настроил WebResourceFilter в context.Response.Filter.Вот основная причина этой проблемы.

Вы можете проверить файл WebResourceFilter.cs .У метода Write () есть проблема:

public override void Write(byte[] buffer, int offset, int count)
{
    // collect all HTML in local variable
    var html = Encoding.UTF8.GetString(buffer, offset, count);
    HtmlOut += html;
}

Размер буфера не гарантируется.Если буфер разделен в середине символа UTF-8 (какие китайские символы в UTF-8 являются многобайтовыми).Невозможно получить правильную строку в UTF8.Таким образом, вы получите беспорядочные символы, которые вы упомянули.

Здесь также есть точная проблема: https://github.com/rxtur/BlogEngine.NET/issues/91

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...