Stránka 1 z 2

c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 18:29
od qwepo753
Dobry den, iba zacinam s c# a preto by som potreboval poradit. Preliezol som google, ale nic funkcne som nenasiel.
Do premennej nacitavam url z ktorej chcem potom parsovat vybrane hodnoty. Problem je, ze dana stranka je v UTF-8. Po nacitani dat mam rozbitu diakritiku. Potreboval by som premennu prekodovat do win1250. Viete mi niekto pomoc s napisanim kodu, kde mam na vstupe premennu a na vystupe prekodovanu premennu na win1250. Vopreed velmi pekne dakujem. Neviem sa s tym pohnut.

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 18:36
od Medzzik

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 18:46
od qwepo753
To som uz pozeral. Ale neviem ako mam zadefinovat, ze chcem z utf-8 do win1205. Skusal som ten script prerobit na win1250, ale znaky boli bez zmeny. Zmenil som
// Create two different encodings.
Encoding ascii = Encoding.ASCII;

na

// Create two different encodings.
Encoding ascii = Encoding.GetEncoding(1250);

Nefungovalo to, resp. neviem ci je to spravny zapis.
Dakujem za odpovede

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 19:27
od Wikan
Ještě musíš změnit to druhý. Unicode není to samý co UTF-8.

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 19:41
od qwepo753
Zmenil som oba. Kod je teraz:

using System;
using System.Text;

namespace ConvertExample
{
class ConvertExampleClass
{
static void Main()
{
string unicodeString = "to občas vypadá mírně prvoplánově, ale závěrečný fotky skutečný";

// Create two different encodings.
Encoding ascii = Encoding.GetEncoding(1250);
Encoding unicode = Encoding.GetEncoding(1250);

// Convert the string into a byte[].
byte[] unicodeBytes = unicode.GetBytes(unicodeString);

// Perform the conversion from one encoding to the other.
byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);

// Convert the new byte[] into a char[] and then into a string.
// This is a slightly different approach to converting to illustrate
// the use of GetCharCount/GetChars.
char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
string asciiString = new string(asciiChars);

// Display the strings created before and after the conversion.
Console.WriteLine("Original string: {0}", unicodeString);
Console.WriteLine("Ascii converted string: {0}", asciiString);
Console.ReadLine();
}
}
}

Ziaden rozdiel nenastal. Viete mi poradit ako na to?
Dakujem

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 19:59
od Wikan
No jasně, že nenastal žádný rozdíl, když v proměnných ascii a unicode máš stejné kódování.

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 20:11
od qwepo753
Pre Wikan: viete mi prosim poradit ako to mam opravit? V c# fakt len zacinam a este sa v nom neorientujem.
Vopred Vam velmi pekne dakujem.

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 20:27
od Wikan
Encoding ascii = Encoding.GetEncoding(1250);
Encoding unicode = Encoding.GetEncoding("utf-8");

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 20:55
od qwepo753
Skusal som to, ale nefunguje to. Ziadna zmena oproti povodnemu zdroju.
Mate nejake napady ako to riesit?
Dakujem

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 21:07
od akira.uzai
a to nemůž s těmi daty pracovat ve správném kódování tedy utf-8, proč je musíš mršit překodováním do 1250? to je nějaká dosová aplikace či co?

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 21:38
od qwepo753
Zdroj taham z url a ta je kodovana utf-8. Ked prevzate data zobrazujem vo form, tak mam rozbitu diakritiku. Ale je to zaujimavy pohlad. Ako sa da c# aplikacia nastavit tak, aby zobrala utf-8? Ak sa vobec da.
Dakujem

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 21:45
od Wikan
No ale .net aplikace pracují standardně s utf-8.
Navíc ta konverze podle mě funguje.

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 21:57
od qwepo753
Ak .net pracuje standartne s utf-8, preco mi potom kazi diakritiku dat kodovanych v utf-8?

Skusal som tu konverziu. A vysledok je rovnaky ako zdroj. Prip. ak to viete niekto odskusat, vylucila by sa chyba u mna.
Dakujem

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 22:00
od Nargon
Mno a JAK to nacitas z toho webu? A rovnou sem dej link na ten web, at ti muzem poradit.
Ono bude asi nejlepsi tomu "stahovaci" rovnou nacpat spravne kodovani, aby ti vracel data spravne a ne takhle zmrsene.

Re: c# konverzia premennej do win1250

Odeslat příspěvekNapsal: 13. 2. 2011 22:04
od qwepo753
Tu je kod. Ide o parse zo zstranky csfd.

string DestinationUrl = "http://www.csfd.cz/film/228329-avatar/";

try
{
WebClient wc = new WebClient();

String s = wc.DownloadString(DestinationUrl);
//Console.WriteLine("Request was successful?" + s);


}
catch (Exception ex)
{
//Console.WriteLine("Error: {0}", ex.Message);
}
finally
{

}