Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 20162|Jawab: 2

[Terpecahkan] Solusi StreamReader untuk karakter kacau saat membaca file

[Salin tautan]
Diposting pada 13/04/2018 16.11.20 | | |
Hari ini, ketika saya membuat dialog Open File OpenFileDialog, saya perlu membaca file yang terbuka dan menampilkannya di RichTextBox dalam formulir. Namun, saat menampilkan file, ditemukan bahwa string Cina yang ditampilkan kacau. Bagian-bagian penting dari kode adalah sebagai berikut:
Awalnya, saya juga berpikir ada masalah dengan pengkodean karakter, jadi ketika saya menginisialisasi StreamReader, saya menambahkan parameter pengkodean karakter ke dalamnya, dan menambahkannya beberapa kali, Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, saya mencoba semua skema pengkodean yang dapat ditambahkan, tetapi hasilnya tidak bagus.


Awalnya, sistem operasi dari Windows 2000 dan kemudian menggunakan Unicode untuk pemrosesan file, jadi . Pengodean file default untuk .Net juga Unicode. Kecuali ditentukan lain, pengkodean default StreamReader adalah Unicode, bukan halaman kode ANSI sistem saat ini. Namun, sebagian besar dokumen masih disimpan dalam pengkodean ANSI, dan teks bahasa Mandarin menggunakan gb2312, yang menyebabkan karakter kacau, yang berarti bahwa format pengkodean harus ditentukan saat membaca teks.


Solusinya adalah: System.Text.Encoding.Default memberi tahu StreamReader pengkodean sistem operasi saat ini.






Mantan:.net/c# Xml, Json, Hessian, Perbandingan serialisasi Buffer Protokol
Depan:.net/c# Gunakan Costura.Fody untuk mengemas DLL ke dalam EXE
 Tuan tanah| Diposting pada 13/04/2018 17.11.39 |
Posting ini terakhir diedit oleh QWERTYU pada 2018-4-13 17:18

Jika masih tidak berfungsi, server mungkin telah mengompresi data, mengambil gzip sebagai contoh, Anda perlu mendekompresi data terlebih dahulu.

Diposting pada 19/04/2018 13.31.02 |
Jika konten web dikompresi dengan gzip dan kontennya kacau, ada dua solusi

Solusi pertama:

//
        Ringkasan:
        Dapatkan atau atur jenis dekompresi yang digunakan.
        //
        Mengembalikan hasil:
        Objek T:System.Net.DecompressionMethods yang menunjukkan jenis dekompresi yang digunakan.
        //
        Anomali:
        T:System.InvalidOperationException:
        Status objek saat ini tidak memungkinkan properti ini diatur.
        publik DekompresiMetode OtomatisDekompresi { mendapatkan; menetapkan; }
Baris kode berikut dilakukan, perubahannya sangat kecil!!




Solusi kedua:



Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com