Úprava kódování souboru staženého z internetu – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Úprava kódování souboru staženého z internetu – .NET – Fórum – Programujte.comÚprava kódování souboru staženého z internetu – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
General0
Návštěvník
16. 10. 2011   #1
-
0
-

Dělam indexovacího robota, každá stránka má jiný kódování, tak ho potřebuju před uloženim převést na jednotný (třeba UTF-8..). Kódování stránky beru z meta tagu, případně z hlavičky, to neni problém.

Horší je už převod, pokaždý dostanu namísto diakritiky max. háčky. Zdroják vracim:
 

//......
response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();

    //namísto true jsem vyzkoušel všechny kódování
StreamReader reader = new StreamReader(responseStream, true);

content = reader.ReadToEnd();

Pak to zkoušim:

Encoding z   = Encoding.GetEncoding("windows-1250"); //v tom je stránka
Encoding _do = Encoding.ASCII; //tady zkoušim různý..
byte[] bytes = _do.GetBytes(source);
source = z.GetString(bytes);

Zvláštní je, že ani odstranění diakritiky nefunguje. Co s tim?

Nahlásit jako SPAM
IP: 89.103.14.–
Reklama
Reklama
16. 10. 2011   #2
-
0
-

#1 General
Ten zdroják převádí cílové kódování na zdrojové. To má být naopak, ne?

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
General0
Návštěvník
17. 10. 2011   #3
-
0
-

? Bordel v názvech, přehlednějš problémovej kód:
 

//v proměnný source je text ve windows-1250, soslej z netu
byte[] bytes = Encoding.GetEncoding(1250).GetBytes(source);
source = Encoding.GetEncoding(Console.OutputEncoding.CodePage).GetString(bytes);
Console.WriteLine(source);

Ať vyměnit Console.OutputEncoding.CodePage za jakýkoliv jiný, tak namísto diakritiky hází otazníky.

Nahlásit jako SPAM
IP: 89.103.14.–
zlz
~ Anonymní uživatel
634 příspěvků
17. 10. 2011   #4
-
0
-

Encoding.GetBytes ZAkóduje DO daného kódování
Encoding.GetString DEkóduje Z daného kódování

Nahlásit jako SPAM
IP: 213.211.51.–
17. 10. 2011   #5
-
0
-

#3 General
Asi to nemůže fungovat bez Encoding.Convert. To zdrojový kódování je určitě správně? 

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 103 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý