Kit jest takim narcyzem! Byłoby o wiele bardziej uroczo, gdyby wydrukował AugustinAugustinAugustinAugustinAugustinAugustinAugustinAugustinAugustinAgustin ...
sierpień
Czy takie zachowanie zdarza się często? czy to jest reprodukowalne? jeśli tak, jaka jest minimalna sekwencja do tego prowadząca?
Manu H
Dzieje się tak po zrzuceniu bazy danych, dzieje się to za każdym razem, ale dopiero po jej zakończeniu, co jest dziwne.
Adam
Odpowiedzi:
21
Tak. Zrzut mysql nie jest zwykłym tekstem, ale zawiera również znaki sterujące terminalem. Praktycznie zawiera dane binarne. Możesz doświadczyć podobnej pamięci flash, jeśli wydrukujesz jakieś dane binarne na ekranie, np cat /bin/bash.
To nie powinno się tak zdarzyć. Niektóre rozwiązania:
Sprawdź, gdzie są dane binarne na twoim zrzucie mysql (myślę, że prawdopodobnie miałeś dane tekstowe z kodowaniem innym niż ascii).
Konwertuj kodowanie wyjściowe na UTF-7 (tak, UTF-7, nie UTF-8!). Kodowanie UTF-7 jest również Unicode, ale zamiast bajtów nie-ascii wykorzystuje sekwencje kompatybilne z ascii. Działa to tylko wtedy, gdy zrzut mysql zawiera tylko prawidłowy utf8. Można to zrobić przez rurociągi go do iconvkomendy kalkulator: mysqldump ...|iconv -f your-actual-encoding-which-is-probably-utf-8 -t utf-7.
Sprawdź zrzut za pomocą przeglądarki zdolnej poradzić sobie z takimi problemami. Na przykład vimjest bardzo dobry w edycji danych binarnych. Jeśli twój problem został spowodowany przez duże obiekty BLOB, hexeditmoże być również przydatny.
Odpowiedzi:
Tak. Zrzut mysql nie jest zwykłym tekstem, ale zawiera również znaki sterujące terminalem. Praktycznie zawiera dane binarne. Możesz doświadczyć podobnej pamięci flash, jeśli wydrukujesz jakieś dane binarne na ekranie, np
cat /bin/bash
.To nie powinno się tak zdarzyć. Niektóre rozwiązania:
iconv
komendy kalkulator:mysqldump ...|iconv -f your-actual-encoding-which-is-probably-utf-8 -t utf-7
.vim
jest bardzo dobry w edycji danych binarnych. Jeśli twój problem został spowodowany przez duże obiekty BLOB,hexedit
może być również przydatny.źródło