Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 36918|Отговор: 2

[.NET Core] .NET Core конзола – изкривени китайски знаци

[Копирай линк]
Публикувано в 17.05.2017 г. 14:44:09 ч. | | | |



Конзолната програма .NET Core е много проста, тоест подканва потребителя да въведе 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