この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 36918|答える: 2

[.NET Core] .NET Coreコンソールの中国語文字の乱れ文字

[リンクをコピー]
掲載地 2017/05/17 14:44:09 | | | |



.NET Coreコンソールプログラムは非常にシンプルで、ユーザーにURLを入力するよう促し、その後ユーザーが入力したURLを入力すると、誰もが一目で理解できますが、中国語の文字が乱れています。

エラーの原因:

「GB2312」はサポートされたエンコーディング名ではありません。 カスタムエンコーディングの定義については、Encoding.RegisterProviderメソッドのドキュメントをご覧ください。
パラメータ名:名前

上記の一般的な意味は、EncodingはGB2312エンコーディングをサポートしておらず、Providerを登録するにはEncoding.RegisterProviderメソッドを使う必要があるということです。



どうやって解決すればいいのでしょうか?

解決策1:

設定コンソールでエンコーディングで表示される文字のテキスト出力を設定すると、対応するコンソールに適用されます。 デフォルトのコードページコンソールで使用されるシステムローカが決定されます。



解決策2:

1: Encoding.RegisterProviderメソッドを使ってプロバイダーを登録する

2: System.Text.Encoding.CodePages パッケージ内のCodePagesEncodingProvider。

3: nuget は install-Package System.Text.Encoding.CodePages コマンドを実行します

4: コード追加:










先の:Centos インストール .NET Core 環境チュートリアル
次に:Linux/CentOSで.netコアコンソールプログラムを動かす[ソースコード]
 地主| 掲載地 2017/05/17 14:46:57 |

私の意見を共有したいと思います。コンソールの文字が乱れている理由は、中国語WindowsのコマンドラインのデフォルトエンコードページがGB2312であり、中国語を出力したい場合はコンソールのコーディングページをUnicodeに変更するだけで済みます。
cmdでchcp 65001と入力し、プログラムを実行するか、プログラムに行を追加してください
Console.OutputEncoding = Encoding.Unicode;
ウェブページが乱れた理由は、プログラムがエンコーディングを指定しておらず、デフォルトでUnicodeを使用しているのに対し、中国環境のブラウザはデフォルトでgbkを使用しているためです。 ContentTypeを設定することでブラウザにutf8を使うよう指示できます。
待機の文脈で。 Response.WriteAsync(「こんにちは、北京へようこそ」); 先行:
文脈。 Response.ContentType = "text/plain; charset=utf-8";
ただし、中国語を表示する場合は、特別な要件がなければSystem.Text.Encoding.CodePagesを参照する必要はありません
掲載地 2022/11/12 13:40:04 |
後で使うために取っておいて
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com