Len na okraj.
Sice MS SQL som nepouzival uz roky ale vsade kde som nahodou k tejto
skratke prisiel ci uz na konfere, alebo inom clanku tak original dodavany
MS SQL driver je jednak stary (asi aj nie je supportovany) a jednak ma
problemy s datumami.
Odporucil by som ti radsej pouzit http://jtds.sourceforge.net/

Roman


Pavel Rezny said:
>     jj, to bude asi ten problem, ze se v connct stringu nic
> nespecifikovalo a tudis nevim, jake kodovani driver predpokladal a
> jestli byl schopen od serveru zjistit, v jakem kodovani je DB.
>     Jednalo se o MS SQL server s kodovanim win-1250 a JDBC driver od
> Microsoftu.
>     Takze jeste pohledam timto smerem a ted uz by se melo podarit
> premluvit ho na UTF-8 ;-)
>
>     Jeste jednou dekuji za uzitecne rady.
>
>        PavelR
>
> Martin Kuba wrote:
>
>> Pavel Rezny wrote:
>>
>>>    Pro pristup do DB pouzivame Hibernate a pokud byla DB win-1250 a
>>> stranka byla win-1250 bylo vse spravne, ale pokud byla stranka v
>>> html-head-meta oznacena jako UTF-8 nebylo kodovani spravne, i kdyz v
>>> Tapestry 3 (http://jakarta.apache.org/tapestry/) bylo vse nastaveno
>>> na UTF-8 (jeste nebylo pouzivano JSF).
>>
>>
>> To vypada, ze data z databaze byla nactena sice jako windows-1250
>> bajty, ale s deklaraci iso-8859-1, takze ve vnitrnim ulozeni javy
>> to byl nejaky nesmysl. Nicmene kdyz se na vystup daly jako iso-8859-1
>> (default kodovani ze servletu) a v HTML META tagu se to oznacilo
>> jako windows-1250, provedl browser druhy spatny preklad, ktery ale
>> vyrusil tu prvni chybu, takze se to zobrazilo dobre.
>> Naopak spravne nastaveni kodovani na utf-8 situaci opticky zhorsilo.
>>
>> Takze problem bude v nastaveni databaze. Co pouzivate ?
>> Vidim to tak, ze JDBC driver je natolik hloupy, ze se nezepta
>> serveru na spravne kodovani, a zaroven mu nebylo spravne kodovani
>> rucne nastaveno. To dela treba MySQL, ale nejspis i jine databaze.
>>
>>> Takze jeste proverim, jak jsou opravdu predavana data z Hibernate a
>>> jestli by tedy bylo mozne nastavit kodovou stranku vzdy na UTF-8 bez
>>> ohledu na to, jak jsou ulozena data v DB.
>>> Ano vnitrni reprezentaci Stringu v Jave chapu presne tak, jak jste
>>> popsal vyse, a samozrejme pokud se pouziji nastroje javy pro nacitani
>>> z DB/souboru, tak se vzdy uvadi v jakem kodovani je zdroj. Ale
>>> protoze jsem si nebyl vubec jisty, jak data dostavam z DB a mel jsem
>>> predchozi spatnou zkusenost, tak jsem nechtel omezit stranky pouze na
>>> UTF-8. Ale pokud to nebude pusobit zadny problem, budu jedine rad,
>>> kdyz budou stranky vzdy v UTF-8.
>>
>>
>> Spravne nacteni dat z databaze je odpovednosti JDBC driveru,
>> musite se podivat do jeho dokumentace. Kdyz bude nejhur,
>> muzete spatne nacteny String opravit takhle:
>>
>> String dobre = new String(spatne.getBytes("spatne kodovani"),"spravne
>> kodovani");
>>
>> ale treba u MySQL staci do JDBC URL dat
>> ?useUnicode=true&characterEncoding=windows-1250
>>
>> samozrejme za predpokladu, ze server pouziva windows-1250,
>> a pak vsechno funguje jako po masle.
>>
>> Makub
>
>
>

Odpovedet emailem