Przenosiny bazy danych z Nettelekom problem z kodowaniem
Czy ktoś przerabiał przenosiny bazy danych z serwera Nettelekomu ? Otrzymalem backup w ktorym jest kodowanie charset=latin1 i po imporcie są krzaki. Próbowałem ręcznie przekonwertowac do utf8 ale nie pomaga Będę wdzięczny za pomoc w temacie
Karol
W dniu 15.06.2012 00:55, karol Sarlej---gmail napisał(a):
Czy ktoś przerabiał przenosiny bazy danych z serwera Nettelekomu ? Otrzymalem backup w ktorym jest kodowanie charset=latin1 i po imporcie są krzaki. Próbowałem ręcznie przekonwertowac do utf8 ale nie pomaga Będę wdzięczny za pomoc w temacie
Czy w backupie znaki są kodowane latin2 (w mysql to ustawione jawnie kodowanie przez charset=latin1 nic nie znaczyło)? Jeśli tak to prosta sprawa: 1) Podmieniasz charset=latin1 na charset=latin2. 2) iconv -f latin2 -t utf8 <backup.sql >nowy-backup.sql
Karol
Wiadomość napisana w dniu 2012-06-15, o godz. 01:12, przez Tomasz Chiliński:
W dniu 15.06.2012 00:55, karol Sarlej---gmail napisał(a):
Czy ktoś przerabiał przenosiny bazy danych z serwera Nettelekomu ? Otrzymalem backup w ktorym jest kodowanie charset=latin1 i po imporcie są krzaki. Próbowałem ręcznie przekonwertowac do utf8 ale nie pomaga Będę wdzięczny za pomoc w temacie
Czy w backupie znaki są kodowane latin2 (w mysql to ustawione jawnie kodowanie przez charset=latin1 nic nie znaczyło)? Jeśli tak to prosta sprawa:
- Podmieniasz charset=latin1 na charset=latin2.
- iconv -f latin2 -t utf8 <backup.sql >nowy-backup.sql
Karol
-- Pozdrawiam Tomasz Chiliński, Chilan _______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
Właśnie chodzi o to że w backupie znaki są kodowane w latin1 i próba zmiany przez iconv nic nie daje
W dniu 15.06.2012 01:25, karol Sarlej---gmail napisał(a):
Wiadomość napisana w dniu 2012-06-15, o godz. 01:12, przez Tomasz Chiliński:
W dniu 15.06.2012 00:55, karol Sarlej---gmail napisał(a):
Czy ktoś przerabiał przenosiny bazy danych z serwera Nettelekomu ? Otrzymalem backup w ktorym jest kodowanie charset=latin1 i po imporcie są krzaki. Próbowałem ręcznie przekonwertowac do utf8 ale nie pomaga Będę wdzięczny za pomoc w temacie
Czy w backupie znaki są kodowane latin2 (w mysql to ustawione jawnie kodowanie przez charset=latin1 nic nie znaczyło)? Jeśli tak to prosta sprawa:
- Podmieniasz charset=latin1 na charset=latin2.
- iconv -f latin2 -t utf8 <backup.sql >nowy-backup.sql
Karol
Właśnie chodzi o to że w backupie znaki są kodowane w latin1 i próba zmiany przez iconv nic nie daje
Jeśli tak backup otrzymałeś z zewnątrz to nic nie wskórasz. Jeśli masz możliwość zrobienia backupu jeszcze raz to może się udać wyeksportować bazę mysql z kodowaniem latin1 co spowoduje, że błędnie kodowane z punktu widzenia latin1 znaki zachowają oryginalną błędną postać.
Wiadomość napisana w dniu 2012-06-15, o godz. 01:29, przez Tomasz Chiliński:
Jeśli tak backup otrzymałeś z zewnątrz to nic nie wskórasz. Jeśli masz możliwość zrobienia backupu jeszcze raz to może się udać wyeksportować bazę mysql z kodowaniem latin1 co spowoduje, że błędnie kodowane z punktu widzenia latin1 znaki zachowają oryginalną błędną postać.
-- Pozdrawiam Tomasz Chiliński, Chilan _______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
Otrzymałem inny dump od administratora file -bi baza_nowa.sql text/plain; charset=unknown-8bit
Jednak przy próbie zaimportowania nadal są krzaki lub pytajniki
mysql -u root --default-character-set=latin2 lms < baza_nowa.sql -p próbowalem przestawiac na wszystko :-) latin1 latin2 utf8 nadal są krzaki natomiast w samej bazie mam tak ustawione kodowanie w my.cnf tez jest utf8
mysql> show variables like '%character%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | utf8 | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) mysql> SHOW VARIABLES LIKE 'collation%'; +----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | | collation_database | utf8_general_ci | | collation_server | utf8_general_ci | +----------------------+-----------------+
W dniu 15 czerwca 2012 11:27 użytkownik karol Sarlej---gmail < karol.sarlej@gmail.com> napisał:
Otrzymałem inny dump od administratora file -bi baza_nowa.sql text/plain; charset=unknown-8bit
Jednak przy próbie zaimportowania nadal są krzaki lub pytajniki
A nie znasz nazwisk swoich klientów? jest jakiś z ź ś ć ż w nazwisku - poszukaj takiego klienta, albo nazwy ulicy, bo po kodach tych literek ustalisz kodowanie :) do iconv możesz nawet własną tablicę kodowania dopisać gdyby to było konieczne.
W dniu 15 czerwca 2012 11:27 użytkownik karol Sarlej---gmail <karol.sarlej@gmail.com
napisał:
Otrzymałem inny dump od administratora file -bi baza_nowa.sql text/plain; charset=unknown-8bit
Jednak przy próbie zaimportowania nadal są krzaki lub pytajniki
A nie znasz nazwisk swoich klientów? jest jakiś z ź ś ć ż w nazwisku - poszukaj takiego klienta, albo nazwy ulicy, bo po kodach tych literek ustalisz kodowanie :) do iconv możesz nawet własną tablicę kodowania dopisać gdyby to było konieczne.
Nie wiem czy dobrze zrozumielem ale po zaimportowaniu bez default characterset jest w bazie cos takiego czyli utf8, przy edycji samego dumpa bazy mam polskie znaki Napisz prosze jak to sprawidzić
ń \xC5\x84 ł '\xC5\x82 Ł \xC5\x81
Właśnie chodzi o to że w backupie znaki są kodowane w latin1 i próba zmiany przez iconv nic nie daje
Nie znam Twojego przypadku, ale z kilkoma takimi zrzutami walczyłem (nie tylko LMS) i zazwyczaj udawało się coś z tego wyciągnąć - zazwyczaj przez jakieś etapy pośrednie.
W dniu 2012-06-15 00:55, karol Sarlej---gmail pisze:
Czy ktoś przerabiał przenosiny bazy danych z serwera Nettelekomu ? Otrzymalem backup w ktorym jest kodowanie charset=latin1 i po imporcie są krzaki. Próbowałem ręcznie przekonwertowac do utf8 ale nie pomaga Będę wdzięczny za pomoc w temacie
Pytanie czy w dumpie masz charset=latin1 a kodowanie latin2/utf8 (tj. czy w dumpie widzisz polskie znaczki). Jeżeli tak to sprawa jest do uratowania. Musisz wyciąć (albo zamienić) charset=latin1 na charset=latin2 (ew. utf8) i zaimportować. Jest duża szansa że tak przejdzie, jakiś czas temu (gdy dorzucili kodowanie do MySQL) robiłem coś podobnego, tj. strukturę bazy zrobiłem z poprawnym kodowaniem, ale dumpa wrzucałem przy --charset=latin1
uczestnicy (5)
-
karol Sarlej---gmail
-
Krzysztof Drewicz
-
Przemysław Gubernat
-
Sarenka
-
Tomasz Chiliński