polskie znaki w listbox

0

witam. spotkałem się z dość problematyczną sytuacją. mianowicie mam program który przepisuje z tablicy string do listboxa słowa zawierające znaki diaktryczne. Problem polega na tym że w tablicy znajdują się polskie znaczki używam do wczytywania z pliku atrybutu Encoding a w listbox natomiast pojawiają się krzaki. Odwiedziłem kilka for i znalazłem kilka rozwiązań które są nieskuteczne.

dodanie słowa poprzez polecenie Items.Add("śćął") wyświetla znaki, natomiast przy przepisaniu tego samego słowa z tablicy wyskakują krzaki.

czy jest możliwość zmiany strony kodowania dla listboxa? ma ktoś pomysł jak to rozwiązać?

1

Zmiana strony kodowania do listboxa jest albo niemożliwa albo bardzo utrudniona, w dodatku nic ci nie da.

Lepiej użyj innego kodowania do dekodowania, bo praktycznie na pewno się pomyliłeś przy dekodowaniu. (Tekst wpisywany do textboxa powinien być w utf-8, jeśli wczytujesz tekst w innym kodowaniu musisz go przekodować na utf-8)

0

Źle czytasz dane z pliku. Pokaż jak.

Tekst wpisywany do textboxa powinien być w utf-8
Raczej UTF-16. Ale to bez znaczenia. Powinien być string

iem - i już w tym stringu jest kaszana.
0
FileStream fs1 = new FileStream(nazwa, FileMode.Open, FileAccess.Read);
            StreamReader sr = new StreamReader(fs1, Encoding.GetEncoding("ISO-8859-2"));
            int l = -1;
            while ((linia = sr.ReadLine()) != null)
            {
                t[l] = linia;
                l++;
            }
            sr.Close();

kodowanie raczej jest dobre bo przepisywanie listboxa do pliku działa. są polskie znaki.

0

Daj plik, który chcesz wczytać. No chyba, że zapisuje je sam program, to zwyczajnie musisz wczytać go z takim kodowaniem z jakim zapisujesz. A jeżeli chcesz wczytać dowolny plik to musisz dać opcję wyboru kodowania przez użytkownika (ew. spróbować samemu ją sprawdzić, są na to metody).

0

nie proszę o poprawianie pliku. z pliku wczytuje się dobrze, wypisywanie na konsoli działa. wcześniej były krzaki zmieniłem kodowanie na ISO-8859-2 i wszystko było ok. Do pliku wpisuje dobrze, tylko w listboxie nie ma polskich znaków.

zawartość pliku txt to kilka słów w języku polskim:

wrócić
dłużej
źrebak
rozsądek
stabilność

ot to cała zawartość. zmiana kodowania w niczym nie pomaga, a na dodatek unicode w ogóle nie jest zapisywane w listboxie. listbox niczym się nie wypełnia w takim przypadku.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.