Szybka zmiana kodowania |
Szybka zmiana kodowania |
21.08.2017, 21:45:20
Post
#1
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 8.12.2014 Skąd: Czernina Ostrzeżenie: (0%) |
Witam,
Jako to że od niedawna zacząłem uczyć się z MySQL to chciałbym się dowiedzieć jak w łatwy i szybki sposób zmienić kodowanie całej bazy danych. Przykładowo mam pewną bazę danych z kodowaniem latin2_general_ci (ISO-8859-2) oczywiście rzadko już jest to kodowanie stosowane i większość przechodzi na UTF-8 Wiem że można ręcznie to robić ale komu by się chciało zmieniać kolumny jak i ich strukturę po kolei a w dodatku mogą wystąpić przy tym krzaczki. Stosowałem już metodę typu eksportowanie bazy i edycja pliku sql przez notepad++ zmienianie masowo danych słów z iso i latin2 na utf8 po czym tym samym programem zmienienie kodowania pliku na utf8. Nie powiem ten sposób działa mimo występującego błędu podczas importu (niby że nie dało rady wgrać bazy ale po odświeżeniu i tak się wszystko wgrało jak należy) Ale chciałbym znać jakiś inny (i zapewne bardziej profesjonalny) sposób na zmianę kodowania całej bazy danych tak aby po zmianie kodowania nie występowały krzaczki PS. Kodowanie samej strony to ogarnąłem już dawno temu ale zawsze mnie irytuje że jak zmienię kodowanie strony na utf a potem bazę to czasami pojawiają się krzaki |
|
|
22.08.2017, 15:12:52
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 836 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Powiem Ci jak ja to zrobiłem. MIałem dokładnie taki sam problem.
Rozwiązaniem było: 1. otwarcie połączenia ze starym kodowaniem 2. utworzenie rekordów UPDATE 3. zapis do bazy ALE na drugim połączeniu z nowym kodowaniu. Czyli potrzebne są dwa połączenia: - ISO, odczyt - UTF, zapis. |
|
|
22.08.2017, 16:42:56
Post
#3
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 8.12.2014 Skąd: Czernina Ostrzeżenie: (0%) |
Ujmę to tak nie za bardzo mi odpowiada łączenie w systemie 2 kodowań... dosyć często są aktualizacje do systemu przez co za każdym razem trzeba by było zmieniać pliki... Chodzi mi o to by za jednym zamachem zmienić raz na zawsze prawidłowo całe kodowanie bazy danych. Na razie mój sposób jest dobry na małe bazy ale jak mi przyjdzie zmienić kodowanie dużej bazy danych to lepiej było by mi zmienić jakimś prostym zapytaniem W BAZIE niż łączyć stare kodowanie z nowym...
Dlatego się pytam czy jest coś takiego bo wgrywanie dużej bazy danych z powrotem z nowym kodowaniem może zająć nawet kilka godzin |
|
|
22.08.2017, 16:51:32
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 836 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Nie, nie... robisz to raz.
Raz wykonujesz taki update. Dzięki czemu masz na czysto poprawne kodowanie w bazie, potem możesz odpytywać bazę z kodowaniem UTF8 |
|
|
23.08.2017, 18:24:33
Post
#5
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 8.12.2014 Skąd: Czernina Ostrzeżenie: (0%) |
Aaaa dobra myślałem że chodziło by w systemie to zrobić...
Powiem tak takim sposobem też robiłem i większość bazy dała się zaktualizować do nowego kodowania ale część bazy miała problemy z zmianą kodowania w strukturach, nie pamiętam jaki to był konkretnie błąd bo było to dość dawno i wtedy w bazie pozmieniały się polskie znaki na znaki zapytania a jako że uwierzyłem że właściciel bazy ma kopię zapasową to nie robiłem własnej... Tu też chciałbym w przyszłości uniknąć takich niespodzianek przy zmianie kodowania |
|
|
24.08.2017, 06:23:55
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 836 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Dlatego ja tworzę nowe tabele, a potem - dodaje prefiksy do starych tabel np. _old a nowym usuwam prefixy np. _new.
Ja nie miałem żadnych problemów. Oczyście tylko wtedy gdy nowa tablica ma kolumny poprawnie stworzone, a nie Latin czy Windows |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 06:54 |