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

Вид: 36918|Ответ: 2

[.NET Core] .NET Core консоли — искажённые китайские иероглифы

[Скопировать ссылку]
Опубликовано 17.05.2017 14:44:09 | | | |



Консольная программа .NET Core очень проста: она предлагает пользователю ввести URL, а затем ввести этот URL, все сразу поймут, но китайские иероглифы искажены,

Причины ошибок:

'GB2312' не является поддерживаемым кодировочным именем. Для получения информации о определении пользовательского кодирования см. документацию по методу Encoding.RegisterProvider.
Имя параметра: имя

Приведённое выше общее значение заключается в том, что кодирование не поддерживает кодирование GB2312, и для регистрации провайдера необходимо использовать метод Encoding.RegisterProvider.



Как это решить?

Решение 1:

Настройте текстовый вывод символов, отображаемых консолью настроек с помощью кодирования, который будет применён к соответствующей консоли. Определяется системный локал, используемый стандартной консолью кодовой страницы.



Решение 2:

1: Используйте метод Encoding.RegisterProvider для регистрации провайдера

2: CodePagesEncodingProvider в пакете System.Text.Encoding.CodePages

3: nuget выполняет команду: Install-Package System.Text.Encoding.CodePages

4: Добавить код:










Предыдущий:Учебное руководство по установке Centos .NET Core Environment
Следующий:Запустите консольную программу .net core на Linux/Centos [исходный код]
 Хозяин| Опубликовано 17.05.2017 14:46:57 |

Я хотел бы поделиться своим мнением: причина искажённых символов на консоли в том, что стандартная страница кодирования в командной строке китайского Windows — GB2312, и если вы хотите выводить китайский, достаточно изменить страницу кода консоли на Unicode.
Введите chcp 65001 в cmd и запустите программу или добавьте строку
Console.OutputEncoding = Encoding.Unicode;
Причина искажённой веб-страницы также в том, что программа не указывает кодировку и использует Unicode по умолчанию, тогда как браузер в китайской среде по умолчанию использует gbk. Вы можете сказать браузеру использовать utf8, установив ContentType.
В ожидании контекста. Response.WriteAsync("Здравствуйте, добро пожаловать в Пекин"); Предшествует:
Контекст. Response.ContentType = «текст/простой; charset=utf-8";
Однако если вы показываете китайский, вам не нужно обращаться к System.Text.Encoding.CodePages без специальных требований
Опубликовано 12.11.2022 13:40:04 |
Сохраните для последующего использования
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com