Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 36918|Odgovoriti: 2

[.NET Core] .NET Core konzola, popačeni kitajski znaki

[Kopiraj povezavo]
Objavljeno na 17. 05. 2017 14:44:09 | | | |



Konzolni program .NET Core je zelo preprost, torej uporabnika pozove, naj vnese URL, nato pa vnese URL, ki ga je uporabnik vnesel; vsi bodo na prvi pogled razumeli, vendar so kitajski znaki popačeni,

Napaka povzroča:

'GB2312' ni podprto ime kodiranja. Za informacije o definiranju prilagojenega kodiranja si oglejte dokumentacijo za metodo Encoding.RegisterProvider.
Ime parametra: ime

Zgornji splošni pomen je, da kodiranje ne podpira kodiranja GB2312, zato morate uporabiti metodo Encoding.RegisterProvider za registracijo ponudnika.



Kako to rešiti?

Rešitev 1:

Nastavite, da se besedilni izhod znakov, ki jih prikaže konzola Nastavitev, s kodiranjem uporabi na ustrezni konzoli. Določa se sistemska lokacija, ki jo uporablja konzola privzete kodne strani.



Rešitev 2:

1: Uporabite metodo Encoding.RegisterProvider za registracijo ponudnika

2: CodePagesEncodingProvider v paketu System.Text.Encoding.CodePages

3: nuget izvede ukaz: Install-Package System.Text.Encoding.CodePages

4: Dodaj kodo:










Prejšnji:Centos Installation .NET Core Environment Tutorial
Naslednji:Zaženite .net core konzolni program na Linux/Centos [izvorna koda]
 Najemodajalec| Objavljeno na 17. 05. 2017 14:46:57 |

Rad bi delil svoje mnenje, razlog za popačene znake na konzoli je, da je privzeta kodirna stran kitajske ukazne vrstice za Windows GB2312, in če želite izpisati kitajščino, morate le spremeniti kodirno stran konzole v Unicode.
Vpišite chcp 65001 v cmd in zaženite program ali dodajte vrstico programu
Console.OutputEncoding = Encoding.Unicode;
Razlog za nepravilno spletno stran je tudi v tem, da program ne določa kodiranja in privzeto uporablja Unicode, medtem ko brskalnik v kitajskem okolju privzeto uporablja gbk. Brskalniku lahko naročite, naj uporablja utf8, tako da nastavite ContentType.
Čakam na kontekst. Response.WriteAsync("Pozdravljeni, dobrodošli v Pekingu"); Predhodilo je:
Kontekst. Response.ContentType = "besedilo/navadno; Charset=utf-8";
Če pa prikazujete kitajščino, vam ni treba uporabljati System.Text.Encoding.CodePages brez posebnih zahtev
Objavljeno na 12. 11. 2022 13:40:04 |
Shrani za kasnejšo uporabo
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com