Adatbázis: UTF-8, weboldal: ISO-8859-1
Üdvözletem,
Van egy adatbázis (UTF-8), benne egy tábla sok-sok rekorddal, kalapos ékezetű tartalommal (õ, û). A weboldal kódolása ISO-8859-1. A probléma ott jelentkezik, mikor a weboldalon keresek (szürke mezei mysql_query, LIKE % %).
Van egy ilyen rekordom: "hõség". Ha rákeresek (input mezőbe beírom) "hőség", nem dob ki egyet se. Ha beírom "hoseg", behozza. Hogy lehetne ezt megoldani? Mármint hogy az "ő" betűt alakítsa "o"-ra?
(A kódolásokon nem lehet változtatni.)
Előre is köszönöm
■ Van egy adatbázis (UTF-8), benne egy tábla sok-sok rekorddal, kalapos ékezetű tartalommal (õ, û). A weboldal kódolása ISO-8859-1. A probléma ott jelentkezik, mikor a weboldalon keresek (szürke mezei mysql_query, LIKE % %).
Van egy ilyen rekordom: "hõség". Ha rákeresek (input mezőbe beírom) "hőség", nem dob ki egyet se. Ha beírom "hoseg", behozza. Hogy lehetne ezt megoldani? Mármint hogy az "ő" betűt alakítsa "o"-ra?
(A kódolásokon nem lehet változtatni.)
Előre is köszönöm
str_replace
Példa:
Mr.Tiny
BINARY
LIKE BINARY '%$szoveg%'
módszerrel, bár ez a kapalos ő-kre nem valószínű, hogy jó eredményt ad, de az ékezetes keresésre minden bizonnyal.Szerintem a kalapos ő-ket és hullámos ű-ket egy külön scripttel meg kellene szüntetned az adatbázisban.
Gyulus
Konvertálás
A másik megoldás, hogy a sql utasítást konvertálod át a megfelelő kódolásra mielőtt futattnád. Ekkor az adatokat abban a kódolásban kapod vissza, ahogy az adatbázisban szerepelnek.
Az igazi megoldás az lenne, ha nem lenne eltérés az adatbázis és a kiírandó adatok kódolása között. Maga a konvertálás is időigényes folyamat, feleslegesen nem érdemes ide-oda konvertálgatni.