Předchozí pokus se nepovedl, bohužel nemám po ruce použitelný mailový klient :-(
Zdravim,
> String nameCP1250 = new String( nameUTF8.getBytes("utf8"), "CP1250" );
Takže pokud tomu rozumím, máte data v cp1250 ale díky nějaké chybě je načítáte
jako UTF8, čímž vznikne nesmyslný String.
Ten pak touto řádkou opravujete do správné podoby (provedete konverzi zpět do
původních bytes a pak provedete tu správnou).
byte[]->String->byte[]->String
Samozřejmě tento postup není zaručen že musí fungovat. Konverze z byte[] do
String totiž není plně reverzibilní a pokud původní text obsahoval chybné
sekvence, dosadí se otazníky. Při dvojím překódování tedy nemusí být finální
výsledek totéž co původní data.
Navíc je poměrně těžké udržet pozornost a přehled o tom, co je převedeno
správně a co špatně.
Je otázka kde přesně je příčina a zda nebude lepší uvést vše do pořádku na
místě kde se ten 1250 text špatně načítá poprvé (i když ne vždy to je možné,
pokud to dělá například Tomcat).
Kamil Podlešák
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Behalf Of Petr Burdik
> Sent: Thursday, September 20, 2007 10:17 AM
> To: Java
> Subject: Re: kodovani cestiny v ruznych jazykovych sadach
>
>
> Pouzivate ji i na prekodovani do jinych kodovani? Jak jsme tu
> meli ty
> postupy k prekodovani z utf na cp1250, tak to se mi nedari.
> Vyhodi mi to
> misto hacku a carek otazniky. Pouzivam ted toto:
>
> String nameCP1250 = new String( nameUTF8.getBytes("utf8"), "CP1250" );
>
> Nevite cim by to mohlo byt?
>
> Pet
>
>
> On Thu, 20 Sep 2007 10:08:53 +0200, Jan Dvořák
> <[EMAIL PROTECTED]>
> wrote:
>
> >
> > Honza Dvorak
>
>
>
> --
> Zpráva vytvořena poštovním klientem "M2", který je součástí webového
> prohlížeče Opera.
> Více na http://www.opera.com/mail/ .
>