• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed C# Aplikacja Windows Forms - Kodowanie

VPS Starter Arubacloud
+1 głos
351 wizyt
pytanie zadane 26 października 2021 w C# przez Kamio Obywatel (1,100 p.)
zamknięte 22 grudnia 2022 przez Kamio

Witam. Dlaczego Encoding.UTF32 po otwarciu pliku tekstowego wczytał jakieś krzaczki, a nie znaków specjalnych takich jak NUL, ETX, EOT, ENQ?

Screen:

Kod:

namespace Projekt
{
    public partial class Form1 : Form
    {
        string path;

        public Form1()
        {
            InitializeComponent();
        }

        private void otwórzToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using(OpenFileDialog ofd = new OpenFileDialog() { Filter = "Dokumenty tekstowe|*.txt", ValidateNames = true, Multiselect = false })
            {
                if(ofd.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        using(StreamReader sr = new StreamReader(ofd.FileName, Encoding.UTF32))
                        {
                            path = ofd.FileName;
                            Task<string> text = sr.ReadToEndAsync();
                            textBox.Text = text.Result;
                        }
                    }
                    catch(Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }
    }
}

 

komentarz zamknięcia: Problem rozwiązany
1
komentarz 26 października 2021 przez reaktywny Nałogowiec (40,650 p.)
Może użyj popularnego UTF-8 ? Albo sprawdź jakie kodowanie ma plik który otwierasz.
komentarz 26 października 2021 przez Kamio Obywatel (1,100 p.)

Sprawdziłem i ma coś takiego.

2 odpowiedzi

0 głosów
odpowiedź 26 października 2021 przez mateusz45 Gaduła (3,240 p.)
wybrane 13 listopada 2021 przez Kamio
 
Najlepsza
Możliwe że textbox (Twój edytor) nie obsługuje tych znaków i w wyniku wyświetla "?" polecam znaleźć inny edytor np RichTextBox nie wiem czy dobre napisałem nazwę bo pisze z pamięci poza tym nie wiem czy Bendą w nim działać twoje znaki ale warto spróbować

 

Edit: spróbuj Enkodowania UTF-8 bo to co napisałem wyżej o sposób jeśli chodzi o emotki
komentarz 26 października 2021 przez Kamio Obywatel (1,100 p.)
Zmieniłem na RichTextBox i jest to samo co z TextBox. Sprawdziłem też inne kodowania ale to nic nie dało.
0 głosów
odpowiedź 27 października 2021 przez VBService Ekspert (251,210 p.)

Spróbuj tego encoder-a on-line.

Convert files to UTF-8  ( Fixing text encoding )

 

Text encoding is a tricky thing. Years ago, there were hundreds of different text encodings in an attempt to support all languages and character sets. Nowadays all these different languages can be encoded in unicode UTF-8, but unfortunately all the files from years ago still exist, and some stubborn countries still use old text encodings. Many devices have trouble displaying text encodings that are not UTF-8, they will display the text as random, unreadable characters.

This tool converts the uploaded text files (Supported formats: any text file) to UTF-8 so modern devices can properly read them. You can uploaded multiple files at the same time, or upload a zip file.

komentarz 27 października 2021 przez Kamio Obywatel (1,100 p.)
No dałem plik i wyświetla się informacja że to nie jest plik tekstowy. Potrzebuje jakiegoś kodowania Unix (LF) | ANSI. Sprawdzałem w Notepad++ to działa ale chce zrobić własny Notepad i chce tylko dodać tego kodowania pod jednym rozszerzeniem pliku, który po prostu odczyta te znaki specjalne razem z normalnym tekstem.
komentarz 27 października 2021 przez VBService Ekspert (251,210 p.)

A próbowałeś, Encoding.ASCII ?

using (StreamReader sr = new StreamReader(ofd.FileName, Encoding.ASCII))

 

komentarz 27 października 2021 przez Kamio Obywatel (1,100 p.)
edycja 27 października 2021 przez Kamio
Tak, próbowałem i nic. Wyświetla mi się jakaś jedna kreseczka w tekście i nawet całego tekstu nie wczytało.
komentarz 27 października 2021 przez VBService Ekspert (251,210 p.)

Spróbuj tego converter-a.

komentarz 27 października 2021 przez Kamio Obywatel (1,100 p.)
To nie działa i nawet zmieniłem rozszerzenie na plik tekstowy to i też nic nie dało. W ogóle po co te konwertory online? Jeśli można się spytać.

Podobne pytania

+1 głos
2 odpowiedzi 119 wizyt
pytanie zadane 8 lipca 2023 w C# przez xFrikeQ Nowicjusz (130 p.)
0 głosów
0 odpowiedzi 157 wizyt
0 głosów
1 odpowiedź 613 wizyt

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...