#c# #asp.net-core
Вопрос:
Есть API, который я вызвал в своем приложении MVC 5, и он правильно возвращает мне ответ. В строке есть эти специальные символы:
ý þ ü.
Однако, когда я перехожу на .NET Core и вызываю тот же API, чтобы вернуть мне ответ, он возвращается ко мне с символом «Алмаз с ?»
Почему это будет работать в MVC 5 и нет .ЧИСТОЕ ЯДРО?
Комментарии:
1. Вы только что доказали, что он отлично работает в .NET Core. StackOverflow — это ASP.NET Основное приложение и строки .NET являются Юникодами. Ваш код преобразует текст в Юникоде в неправильную однобайтовую кодовую страницу или использует неправильную кодовую страницу для чтения текста, отличного от Юникода. То, что вы описали,-это символ замены Юникода , который используется только при попытке прочитать текст, отличный от Юникода, с неправильной кодовой страницей
2. Опубликуйте свой код. Каким-то образом этот код использует неправильную кодовую страницу
3. Это не отображение строки на странице. Это ответ, возвращающийся из API.
4. Ну, все, что кто-либо может сказать наверняка, это то, что у вас где-то есть проблема с кодировкой, но без каких-либо подробностей о том, как выглядит ответ, включая заголовки, и какой код генерирует указанный ответ, остается только догадываться. Мое личное предположение состоит в том, что одна из этих технологий
Encoding.Default
где-то используется для обозначения «системного по умолчанию» (он же, как правило, Windows-1252), в то время как .NET Core почти наверняка по умолчанию использует UTF-8, потому что это портативный выбор. Интерпретация строки в кодировке Windows-1252 как UTF-8 приведет вас к моджибаке.5. Я попытался вернуть эти специальные символы, и проблем нет. Вы установили набор символов или что-то в этом роде?