Page 1 of 1
Problém s českými znaky - načítání ze souboru
Posted: Sun Nov 13, 2011 14:35
by Sandak
Ahoj mám problém s českými znaky. Následující metoda mi čte text ze souboru .txt a text vrací v pohodě, ale jakmile je tam jakýkoliv český znak tak mi to vyhodí � ten nejde vykreslit ani s ním pracovat.
Kód metody:
Code: Select all
private string loadSentence()
{
using (StreamReader reader = new StreamReader(TitleContainer.OpenStream(path)))
{
string line = reader.ReadLine();
width = line.Length;
while (line != null && line != "")
{
lines.Add(line);
line = reader.ReadLine();
}
Random random = new Random();
return lines[random.Next(0, lines.Count)].ToUpper();
}
}
Potřeboval bych tam někam nastavit aby bylo kódování windows-1250 nevíte prosím kde to nastavit?
Nemáte s tím někdo nějaké zkušenosti? děkuji
Problém s českými znaky - načítání ze souboru
Posted: Sun Nov 13, 2011 15:38
by IkE Blaster
Musíš nastavovat i Encoding, automatická detekce funguje jak kdy (podle BOM, tuším).
http://msdn.microsoft.com/cs-cz/library/ms143456.aspx" onclick="window.open(this.href);return false;
Tahle třída/metoda v Silverlightu není?
http://msdn.microsoft.com/en-us/library/bsy4fhsa.aspx" onclick="window.open(this.href);return false;
Problém s českými znaky - načítání ze souboru
Posted: Sun Nov 13, 2011 16:02
by Sandak
bohužel tuto metodu jsem v XNA nenašel "ReadAllLines",
string[] readText = File.ReadAllLines(path, Encoding.UTF8);
Pozměnil jsem následovně tento řádek:
StreamReader sr = new StreamReader(TitleContainer.OpenStream(path), Encoding.GetEncoding("windows-1250"));
bohužel mi to nyní vypisuje chybu: "'windows-1250' is not a supported encoding name." tak teď nevím co tam jiného nastavit, proč mi to nebere windows-1250?
// nastavit tam ("utf-8") funguje ale windows-1250 ne... takže potřebuji někde přidat podporu windows-1250
Poradíte mi prosím jak mám nastavit to kodovani 1250? už sem hledal snad všude a vyzkoušel snad všechno a pořád nic.. potřebuji ty české znaky načíst
Problém s českými znaky - načítání ze souboru
Posted: Mon Nov 14, 2011 23:49
by IkE Blaster
Proč ten text nepřevedeš do UTF-8? Je v tom nějaký problém?
Dle MSDN podporuje WP jen UTF-8, UTF-16LE a UTF-16BE. Věřím, že to půjde obejít, ale pro WP nevyvíjím, nehodlám se tím zatěžovat.
Problém s českými znaky - načítání ze souboru
Posted: Tue Nov 15, 2011 9:13
by Sandak
Teď jsem asi trochu mimo. Potřebuji mít soubor *.txt a v něm uložený text, který obsahuje háčky a čárky např jména uživatelů, popřípadě jiné textové řetězce. Jak jej mohu převést na UTF-8, abych poté načetl i tyto speciální znaky jako háčky apod?
Po uložení txt do uft-8 mi samozřejmě zmizí české znaky a potom je nemohu vypsat
Problém s českými znaky - načítání ze souboru
Posted: Thu Nov 17, 2011 23:02
by Paulos
Převod do UTF-8 není zase tak obtížný, použít se dá Notepad++, PSPad i obyčejný Poznámkový blok (při ukládání souboru zvolíš v rozbalovacím poli Kódování: UTF-8). Parsování Windows-1250 a obecně nepodporovaných kódování v C# je problematické, ale můžeš si klidně napsat vlastní dekodér, který ti převede znaky z Win-1250 tabulky znaků na Unicode a s jeho pomocí poté dekódovat. Horší je to s rozpoznáním, jaké má vlastně soubor kódování. Teď to řeším takovým nehezkým způsobem, že čekám na výjimku; pokud se objeví, zachytím ji, extrahuji název kódování z chybové zprávy a pomocí něho identifikuju správné kódování. Pak už můžu správně dekódovat i další znakové sady.
Dodám, že takové omezení znakových sad má, pokud vím, jen WP7 implementace C#, jinde bys měl být v pohodě.