Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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: Додати код:










Попередній:Навчальний посібник з інсталяції .NET Core Environment Centos
Наступний:Запустити консольну програму .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