Zdravím,
z tohoto kódu se nedá poznat, v jakém kódování se to odešle. String v Javě
je „bez kódování" (interně samozřejmě nějaké kódování má, ale to vás v
podstatě nemusí zajímat) – jsou v něm prostě uložené jednotlivé (Unicode)
znaky. Teprve když je potřeba někde převést String na posloupnost bajtů
(typicky OutputStream nebo String.getBytes()),
použije se nějaké kódování. Buď kódování explicitně určené, nebo
kódování platformy (na
českých Windows je to Windows-1250, na Unixech/Linuxu záleží na locale, pro
české locale to bude iso8859-2) – lze jej zjistit z
java.nio.charset.Charset.defaultCharset
(). Na kódování platformy rozhodně doporučuji nespoléhat a vždy uvádět
kódování vlastní podle nějaké konfigurace (nebo „univerzální" UTF-8).
Klient by pak měl dostat opět String, který byl dekódován podle údajů o
kódování, které klient dostal od serveru.
Tj. klient dostane váš String jako text, informace o
„kódování" uvedená v XML hlavičce je mu
k ničemu, protože to je informace o tom, jak převést posloupnost bajtů na
text.
S pozdravem
Filip Jirsák
2008/1/8, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
>
> Ahoj
> robim pre zakaznika webovu sluzbu a nie je mi jasna jedna vec.
>
> webova sluzba getXYZ vracia String, ktory obsahuje xml.
>
> napriklad
> public String getXYZ() throws MyException {
> StringBuffer xml = new StringBuffer("<?xml version=\"1.0\"
> encoding=\"windows-1250\"?>");
> xml.append("<ret>ľščťžýŠČŽ</ret>");
> return xml.toString();
> }
>
> A tu mam dilemu...v akom kodovani to pride ku klientovy? Resp. ako sa
> spracuvavaju narodne znaky?
> Povedzme ze niekto, kto funguje ja neviem v basicu si z wsdl
> vygeneruje klienta a zavola getXYZ(). Tipujem ze basic ma nieco ako
> string, takze urobi nieco ako (basic netusim, tak len takto...)
> VAR str AS STRING
> LET str = proxy.getXYZ()
>
> v str ma tera co? utf-8? windows-1250? zalezi od jazyka?
>
> Vdaka za objasnenie
> jerzy
>
>
>
--
Filip Jirsák
[EMAIL PROTECTED]