• 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

Aruba Cloud - Virtual Private Server VPS
+1 głos
572 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 (46,070 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,280 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 (256,500 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 (256,500 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 (256,500 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 296 wizyt
pytanie zadane 8 lipca 2023 w C# przez xFrikeQ Nowicjusz (130 p.)
0 głosów
0 odpowiedzi 383 wizyt
0 głosów
1 odpowiedź 841 wizyt

93,277 zapytań

142,276 odpowiedzi

322,282 komentarzy

62,595 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...