Witam
Mam tabelę, w której polskie znaki są zastąpione czymś takim: Ĺ Ä. Mogę bez problemu dodawać nowe rekordy z polskimi znakami. Będą dobrze wyświetlane zarówno w bazi jak i na stronie.
Problem jest w tym, że te dziwne znaki są wyświetlane jako polskie, tylko gdy nie użyję mysqli_set_charset($sql, "utf8"), lecz wtedy dane z innych tabel z dobrze zapisanymi polskimi znakami będą źle wyświetlane.
Czy da się jakoś te znaki podmienić na polskie odpowiedniki? Próbowałem funkcją replace, ale Ĺ jest tak samo traktowane zarówno jako małe ł co duże Ł.
0
0
Zanim zaczniesz dodawać cokolwiek do tej bazy - napraw tą istniejącą, bo z problemu "wiele kodowań znaków w jednej bazie danych" za łątwo nie wyjdziesz... Masz ją (bazę) w formie jakiegoś zrzutu do pliku *.sql? Skąd ją w ogóle wziąłeś. Już na etapie importu/exportu ktoś coś namieszał. Dałoby się ponownie zrobić eksport?
0
Baza jest trzymana na serwerze. Nic w niej nie grzebałem. Jest tak jak była. Te rzeczy o których pisałem, wykonywałem na jej kopii.
0
Ok, chyba się mi udało. Wpadłem na coś takiego:
while($row = $result->fetch_assoc()){
$sql->set_charset("utf8");
//INSERT ze starej tabeli do nowej
$sql->set_charset("latin2");
}
Jeszcze nie wiem czy wszystko jest okey, ale chyba tak.