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

眺める: 20162|答える: 2

[解決済み] ファイルを読み取る際の文字が乱れた場合のStreamReaderソリューション

[リンクをコピー]
掲載地 2018/04/13 16:11:20 | | |
今日、OpenFileダイアログを作成していたとき、開いたファイルを読み取り、フォーム内のRichTextBoxに表示する必要がありました。 しかし、ファイルを表示した際に、表示された中国語の文字列が乱れていることが判明しました。 コードの主要な部分は以下の通りです。
最初は文字エンコーディングにも問題があると思い、StreamReaderを初期化する際に文字のエンコーディングパラメータを追加し、何度も追加しました。Encoding.Unicode、Encoding.UTF32、Encoding.UTF7、Encoding.UTF8、Encoding.ASCIIなど、追加可能なエンコーディング方式はすべて試しましたが、結果は良くありませんでした。


もともとWindows 2000以降のOSはファイル処理にUnicodeを使用していたため、 .NetのデフォルトのファイルエンコーディングもUnicodeです。 特に指定がない限り、StreamReaderのデフォルトのエンコーディングはUnicodeであり、現在のシステムのANSIコードページではありません。 しかし、ほとんどの文書は依然としてANSIエンコーディングで保存されており、中国語テキストはgb2312を使用しているため、中国語の文字が乱れるため、読み上げる際にエンコーディング形式を指定する必要があります。


回避策としては、System.Text.Encoding.DefaultがStreamReaderに現在のオペレーティングシステムのエンコーディングを伝えます。






先の:.net/c# Xml、JSON、ヘッシアン、プロトコルバッファのシリアライズ比較
次に:.net/c# Costura.fodyを使ってDLLをEXEにパッケージ化してください
 地主| 掲載地 2018/04/13 17:11:39 |
この投稿はQWERTYUによって2018年4月13日17:18に最終編集されました。

それでも動作しない場合は、サーバーがデータを圧縮している可能性があります。例えばgzipを例にすると、まずデータを解凍する必要があります。

掲載地 2018/04/19 13:31:02 |
もしウェブコンテンツがgzipで圧縮されていて内容が乱れている場合、2つの解決策があります

最初の解決策:

//
        概要:
        減圧の種類を決めるか設定してください。
        //
        結果の返却:
        使用された解凍の種類を示すT:System.Net.DecompressionMethodsオブジェクトです。
        //
        異常:
        T:System.InvalidOperationException:
        オブジェクトの現在の状態ではこのプロパティを設定することはできません。
        public DecompressionMethods AutomaticDecompression { get; セット; }
以下のコードが行われます、変化はとても小さいです!!




第二の解決策:



免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com