Iso8859-2 Kódolás

Sziasztok!

Kis gondban vagyok és nem találok rá értelmes megoldást sehol sem.

Adott egy oracle db szerver amiben minden adat iso8859-2 kódolással van bent.

Ha a kapcsolat utf8-as, akkor sok varchar2 mezőnél elhal a php pdo.




data was too large for buffer and was truncated to fit it



Ha iso8859-2-vel csatlakozok, akkor pedig a php htmlentities() hal le, mivel nem ismeri ezt.

Valaki futott már bele ilyenbe?

Talált rá valami értelmes megoldást?

Ha marad az oldal utf8-as és a kapcsolat pedig iso8859-2, akkor pedig minden egyes táblába írás/olvasás során át kellene a karaktereket kódolni. Lehetőleg úgy, hogy ne bántsam a framework-öt.

Az adatbázis átkódolása nem megoldás, annak maradnia kellene iso-ban.

Hali!

Nem nyújt megoldást, ha az appod is + az adatbázis kapcsolatod is ISO-8859-2-ben van? Így elméletileg nem kellene oda-vissza konvertálni az adatokat.

doc/api/1.1/CApplication#charset-detail

Ha jól látom a Yii nem használja a htmlentities()-t, de a CHtml::encode()-hoz hasonlóan meg tudod adni a htmlentities()-nek is a charset-et a 3. paraméterbe: Yii::app()->charset

Kérdés, hogy mennyire kavar be, hogy a fájlok utf-8-ban van vannak kódolva.

UTF8-as fájlok nagyon bekavartak neki, szerencsére nem hosztingolt helyen van a php, így tudtam forgatni egy módosítottat, ami több helyet foglal le a memóriában.

Konkrétan a CHtml::encode() használja a htmlentities()-t, sok helyen kellett volna átírni a framework-öt, ezt meg a legkevésbé sem szerettem volna.

Viszont érdekes, hogy ezt másképp nem lehetett volna megoldani szépen, csak "gányolással".