UTF8 na CP1250   zodpovězená otázka

VB.NET

zdravím všechny,

mám jeden problém s převodem textu z UTF8 na CP1250. Nevíte někdo jak elegantně uložit text do souboru tak aby byl soubor CP1250. Standartně totiž VB 2008 ukládá pod UTF8 a konverze nebo nastavení pro CP1250 je trochu oříšek. Jedná se totiž o XML které se rozebere a následně uloží text do souboru. A právě ten soubor potřebuji pod CP1250.

dim EP as string = "+ěščřžýáíé=" 
My.Computer.FileSystem.WriteAllText("D:\test1.txt", EP, False)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
        Dim EP As String = "+ěščřžýáíé="
        Dim encoding1250 As System.Text.Encoding = System.Text.Encoding.GetEncoding(1250)
        My.Computer.FileSystem.WriteAllText("D:\test1.txt", EP, False, encoding1250)

Rozsáhlejší komentář v tuto brzkou hodinu po mě nechtějte :). Funkčnost by měla být jasná. Vytvoříte si objekt pro encoding textu podle identifikátoru znakové sady a ten předáte funkci na uložení do souboru.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

díky... vyzkouším. hledal jsem právě zda nahoudou nemá už definované. snad to bude fachat jak má.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Kódová stránka 1250 se v .NET musí získávat tímto způsobem. Nadefinovány jako statické vlastnosti třídy Encoding jsou jen základní typy jako ASCII nebo UTF8.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

to jsem pochopil z dokumentace. akorát mi nebylo jasné zda se to musí pro ostatní kódové stránky definovat převodem nebo si šablonu převezme ze systému když mu dám aby použil kódovou stránku cp1250.

jinak díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

tak po dlouhé době se vracím k problému UTF8 a CP1250. Ukládání souboru pod zvolenou znak sadou funguje bez problému, ale...

řeším jeden problém a to s textem nebo xml. ulozeny soubor je v UTF8. načtu data v utf8 ze souboru, poskládám řetězce za sebe. pak to chci uložit do souboru pod CP1250 a nasledně načíst na web do baze (php.mysql). a zde se stane chyba. to co by mělo být v cp1250 (cz znaky) tak je nahrazeno otazníkem nebo jiným patvarem. vypadá to jako by CZ (ěščřž) vůbec nepřevedl.

nevíte čím by to mohlo být. dá se nějak zjístit jestli dané znaky v txt souboru opravdu patří na tu pozici ve znakovce. někde jsem četl že některé znaky v UTF nemají stejnou pozici v cp1250. ten samej problém je i v případě že z cp1250 davám na utf8.

díky za radu

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Prosím Vás, nejdřív si to po sobě přečtěte. Pak se zamyslete, zda dotazy na uložení dat do mysql patří na tento server, a nakonec si nastudujte věci kolem set_names a collation z dokumentace k mysql.

Začít s tím můžete třeba tady:

http://www.linuxsoft.cz/article.php?id_a...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

ale patří sem. protože UTF8 na CP1250 se děje na straně VB a ne na straně (php,mysql). co se týka toho set_names a collation... to bych neřešil protože když se natahuje soubor z jiného zdroje tak to funguje. takže když to funguje z jineho zdroje a z VisualBasicu nee tak asi bude chyba ve VB. Takže připomínky o nastudováni mysql,php nechte klidně u ledu.

tady jde převážne o překódování UTF8 na cp1250.

asi jsem to špatně napsal. mám pismeno "ř" a to má podle tabulky UTF8 nějakou pozici, která ale nesouhlasí s pozicí znaku v cp1250. toť celý problém. protože ukladani re utf8

nahlásit spamnahlásit spam 0 odpovědětodpovědět

ale patří sem. protože UTF8 na CP1250 se děje na straně VB a ne na straně (php,mysql). co se týka toho set_names a collation... to bych neřešil protože když se natahuje soubor z jiného zdroje tak to funguje. takže když to funguje z jineho zdroje a z VisualBasicu nee tak asi bude chyba ve VB. Takže připomínky o nastudováni mysql,php nechte klidně u ledu.

tady jde převážne o překódování UTF8 na cp1250.

asi jsem to špatně napsal. mám pismeno "ř" a to má podle tabulky UTF8 nějakou pozici, která ale nesouhlasí s pozicí znaku v cp1250. toť celý problém. ukladani pod UTF8 funguje, protože nedochází k převodu znaku. a ja potřebuji zjístit kde ten problem je. jestli VB nepřevádí znakovky dobře a tím padem se to chová pořád jako by to bylo UTF8 (znak) ale soubor je cp1250.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Můžu se přidat s dotazem?

Vidím, že se něco již povedlo.

Nechci nic složitého, pouze analyzuju zdrojový kód stránky.

Ten je v kódování cp1250 a když chci pak vypsat nalezený text (např. v textboxu), píše mi to nekorektní znaky.

Můžete poradit, jak korektně ošetřit a vypsat text v daném kódování? (event. pak překódovat do UTF8)

Dík za případnou pomoc.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tisíceré díky. Vytrhlo mi to trn z paty.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback