|
Как?
Как да си прекодирам базата? Защо ми излизат неразбираеми символи? Много често срещам такива въпроси и доскоро мислех, че тая работа е много трудна и объркана. Намерих един полезен текст тук: http://www.hostbulgaria.com/tutorials/mysql-charset-encoding.aspx С помощта на тези съвети доста хора се справиха с проблема. Най-често препъващата стъпка е външното прекодиране на самия dump-файл. Който няма средство за прекодиране, може да си напише PHP-скрипт, ползвайки тамошната функция iconv(), но цялата работа изглежда бавна и тромава. Други хора предпочитат да ползват SQL-скриптове, с които да прекодират данните вътрешно, без изобщо да се минава през dump. За тях специално искам да кажа, че каквато съм късметлийка, моментално успях "да настъпя мотиката" в този метод, което накратко разказах тук: http://it-place.net/index.php?type=forum&rid=12&pid=6561&a=0#7835 Хубавата новина може да прочетете пак там, в следващия пост на Mutatos - ако вместо binary се използва BLOB, тази грешка не възниква. С облекчение открих, че мога да прилагам друг метод, по-лек от горните два. Минава се през dump-файл, но не се налага той да се дообработва и прекодира. Единственото условие е да го създадете в енкодинга, в който е базата, дори когато този енкодинг е грешен! Ако тя е в latin1, поискайте й дъмп latin1, дори и да знаете, че вътре държите 1251-данни. Каква е целта? - Да я накарате да НЕ ПРЕКОДИРА данните ви. (Но, ако phpMyAdmin се инати и винаги ви създава utf8-дъмп, няма да минете леко, защото вече всичко ще е разместено.) Така че моята рецепта се състои от 3 стъпки:
P.S.
Докато примерно с UltraEdit нещата са добре.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









