Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 36918|Vastaus: 2

[.NET Core] .NET Core -konsoli, kiinalaiset merkkien sekaisin tehdyt merkit

[Kopioi linkki]
Julkaistu 17.5.2017 14.44.09 | | | |



.NET Core -konsoliohjelma on hyvin yksinkertainen: se pyytää käyttäjää syöttämään URL-osoitteen, ja sitten syöttää käyttäjän syöttämä URL, kaikki ymmärtävät sen yhdellä silmäyksellä, mutta kiinalaiset merkit ovat sekavat,

Virhe aiheuttaa:

'GB2312' ei ole tuettu koodausnimi. Lisätietoja mukautetun koodauksen määrittämisestä löytyy Encoding.RegisterProvider-metodin dokumentaatiosta.
Parametrin nimi: nimi

Yllä oleva yleinen merkitys on, että Encoding ei tue GB2312-koodausta, ja sinun täytyy käyttää Encoding.RegisterProvider-menetelmää Providerin rekisteröintiin.



Miten ratkaista se?

Ratkaisu 1:

Aseta Asetukset-konsolin näyttämien merkkien teksti koodauksen avulla sovelletaan vastaavaan konsoliin. Oletuskoodisivukonsolin käyttämä järjestelmäpaikka määritellään.



Ratkaisu 2:

1: Käytä Encoding.RegisterProvider-menetelmää rekisteröidäksesi palveluntarjoajan

2: CodePagesEncodingProvider paketissa System.Text.Encoding.CodePages

3: nuget suorittaa komennon: Install-Package System.Text.Encoding.CodePages

4: Lisää koodi:










Edellinen:Centos Installation .NET Core Environment Tutorial
Seuraava:Aja .net core console -ohjelma Linuxilla/Centosilla [lähdekoodi]
 Vuokraisäntä| Julkaistu 17.5.2017 14.46.57 |

Haluaisin jakaa mielipiteeni: syynä konsolin sekavaan merkkiin on se, että kiinalaisen Windowsin komentorivin oletuskoodaussivu on GB2312, ja jos haluat tulostaa kiinaksi, sinun tarvitsee vain muokata konsolin koodaussivu Unicodeksi.
Kirjoita chcp 65001 cmd:hen ja suorita ohjelma tai lisää rivi ohjelmaan
Console.OutputEncoding = Encoding.Unicode;
Syynä sekavaan verkkosivuun on myös se, ettei ohjelma määritä koodausta ja käyttää oletuksena Unicodea, kun taas selain kiinalaisessa ympäristössä käyttää oletuksena gbk:ta. Voit käskeä selaimen käyttämään utf8:aa asettamalla ContentType-toiminnon.
Odottamassa kontekstia. Response.WriteAsync ("Hei, tervetuloa Pekingiin"); Edeltäjinä:
Konteksti. Response.ContentType = "teksti/tavallinen; charset=utf-8";
Jos kuitenkin näytät kiinaa, sinun ei tarvitse käyttää System.Text.Encoding.CodePages -tiedostoa ilman erityisiä vaatimuksia
Julkaistu 12.11.2022 13.40.04 |
Paitsi myöhempää käyttöä varten
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com