( persicsb | 2017. 09. 21., cs – 16:38 )

A hibaüzenet előállítójának kell gondoskodnia arról, hogy amikor a kiíró felé kerül a hibaüzenet, akkor UTF-8 kódolásban legyen.

Amikor Oracle műveletet hajtasz végre, tudod, hogy milyen kódolásban jön az üzenet az Oracle-től, hiszen ez a kapcsolat paramétereinek a része.
Amikor az Oracle hibaüzenetét elkapod, akkor fogod, és az ismert kódolásról UTF-8 kódolásra alakítod át, ls ezzel már tud mit kezdeni az output előállítója.

Itt valahogy azt sejtem, hogy nagyon fel vannak keverve a felelősségi körök.

Az output előállítójának legyen az a contractja, hogy mindenféle kiírandó üzenetet ő UTF-8 kódolásban vár. Neki a kapott bytesorozatról az a feltételezése kell legyen, hogy UTF-8 kódolásban van a kapott bytesorozat. Az, hogy a kimeneten mi lesz, az más kérdés.

Aki pedig a hibaüzenet-kiírónak szeretne hibaüzenetet küldeni, kötelessége azt UTF-8 kódolással elküldenie a hibaüzenet-kiíró felé.
Így aki az Oracle-lel kommunikál, és onnan hibaüzenetet kap, kötelessége azt UTF-8-ra alakítania. Az a fél, aki az Oracle-lel kommunikál, nem tudja, hogy milyen kódolásban kap az Oracle-től hibaüzenetet? Az régen rossz, hiszen az Oracle-lel kommunikáló kódnak felelőssége (és csak neki felelőssége) tudnia azt, hogy éppen milyen kódolással kap választ az Oracle-től.