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.
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".