Nerijus rašė: > On 2011-03-21 10:43, Nerijus wrote: >> On 2011-03-21 10:20, Nerijus wrote: >>> On 2011-03-20 19:50, Laimis wrote: >>>> Nerijus rašė: >>>> >>>>> Taigi jei kazka galeciau dabar toje senienoje keisti, tai tikrai taip >>>>> nepalikciau, esme, kad bandoma kazka prie tos senos sistemos >>>>> "prijungti" ir ten keisti nieko nenorima. Ish kitos puses kadangi tai >>>>> tik bandymai, tai ir nesinori daug investuoti, todel jieshkau >>>>> paprasciausio sprendimo (nieko neprograminant taip sakant, nes ish >>>>> esmes ne programeris ir esu). >>>>> >>>>> Vat dabar dar kilo ideja pabadyti koki nors kito gamintojo Interbeiso >>>>> JDBC draiveri, gal kas turi kokios patirties? >>>> >>>> O ko iš to kito tikėtumeisi? Kad jis automagiškai konversiją darytų, >>>> ar, >>>> kad apskritai turėtų tokią galimybę? >>>> Kita vertus, kai kas čia man dar neaišku: >>>> >>>> > s1 = new String(str1.getBytes("ISO8859_13"), "ISO8859_1"); >>>> > return s1; >>>> >>>> kas įrašoma į failą? (attachment'o norėtųsi, kai string'ai turi bent >>>> keletą įvairių lietuviškų raidžių): >>>> >>>> File f = new File("out.txt"); >>>> FileWriter out = new FileWriter(f); >>>> >>>> out.write(s1 + "\n"); >>>> out.write(str1 + "\n"); >>>> out.close(); >> >>> Gerai pabandysiu irasyti viska i faila ir paziureti kas gaunas. >>> >>> N. M. >> >> Nu va, prikabinu faila, bet gavos kazkas ne taip. Kiek suprantu siame >> faile viskas sukoduote UTF8, Ir atidarius ji ISO8859_13 koduote nieko >> doro nesimato. >> >> N. M. > > Truputi pataisaiu koda: > > s1 = new String(str.getBytes("ISO8859_13"), "ISO8859_1"); > > OutputStream fout = new FileOutputStream("/tmp/out2.txt"); > OutputStreamWriter o = new OutputStreamWriter (fout, "ISO8859_1"); > > o.write(s1 + "\n"); > o.write(str + "\n"); > o.close(); > > Ir efektas toks koks ir rasant i DB. Tai yra "lyg ir" naudojama koduote > ISO8859_1, bet tekstas yra ISO8859_13 koduotes, ir atidarius faila tokia > koduote matomos lietuviskos raides normaliai. Tai dabar matyti problema. Ji net ne DB pusėje, o XML duomenų (gavimo) grandinėje, nes gauti string'ai yra nekorektiškai sumalti (perinterpretuoti-perkoduoti) iš ISO-8859-13 (tokia koduote yra pirminiai/pateikiami duomenys) į ISO-8859-1. ĄČšųū: 0x{C0, C8, F0, F8, FB}@ISO-8859-13 perinterpretavus ISO-8859-1 koduotėje, gauname: ÀÈðøû: 0x{C0, C8, F0, F8, FB}@ISO-8859-1 Visa tai dar pervertus į UTF-8 (FileWriter.write(); prielaida, kad default charset yra UTF-8) gauname: ÀÈðøû: 0xC3{80, 88, B0, B8, BB}@UTF-8 Taigi, ieškok problemų toje XML skaitymo dalyje, kurioje gauti duomenys (ISO-8859-13) interpretuojami, lyg jie būtų ISO-8859-1 koduotės.