Bazy danych SQL - Naprawianie bazy danych - krzaków na forum
tosiek - 25-01-2009, 11:55
hacker06, to przeczytaj to 2 razy zanim zaczniesz robić nie licz na to że ktoś zrobi za Ciebie albo poda ci gotowe rozwiązanie ot tak.
polecam także:
http://www.google.pl/sear...btnG=Szukaj&lr=
hacker06 - 25-01-2009, 12:05
Przecież robiłem wszystko po kolei... Robię wszystkie kroki i nie działa, nie ma w kodowaniu ANSI nawet krzaków tylko są znaki zapytania... I co mam całą bazę danych modyfikować przy okazji domyślając się gdzie jest ą, ę, a gdzie ł? Bez sensu...
@edit
Edytowałem poprzedniego posta, zanim napisałeś tego up, bo robiłem coś źle, ale teraz robię wg. instrukcji i jest tak jak napisałem wyżej...
tosiek - 25-01-2009, 12:10
zapomnaiłem dopisac że jezeli w bazie to jest równoznaczne z plikiem:
Cytat: | Jeśli w pliku z kopią zapasową bazy zamiast polskich znaków diakrytycznych są znaki zapytania ??? oznacza to że tego nie da się już naprawić !! ( jeśli są wyświetlane na forum oznacza to że można to poprawić ) |
Zacznij od tego czy w starej bazie masz znaki zapytania, potem zobacz czy po zrobieniu backupu starej bazy (exporcie) masz nadal polskie znaki, jeśli nie masz ni w bazie ni w pliku to się pożegnaj ze znakami i szukaj jakiegoś backupu co masz znaczki
jeżeli masz polskie znaki w starej bazie to rób zgodnie z pierwszym postem w tym temacie
Możesz spróbować w ostateczności:
http://www.gzegzolka.com/poliszynel/
hacker06 - 25-01-2009, 12:14
Dobra sprawa wygląda tak:
Mam bazę danych na webr.pl, która ma polskie znaki w kodowaniu utf-8. Wrzuciłem ją na serwer (zmieniłem hosting) proserwer.pl i tam pojawił się problem. Korzystałem z poradników na tym forum. I sytuacja wygląda tak:
ściągam bazę z webr.pl są znaki polskie -> wrzucam na proserwer.pl są znaki zapytania zamiast znaków polskich (na forum)
ściągam bazę z proserwer.pl -> znaków polskich nie ma w żadnym z kodowań.
Ciągle mam bazę danych z webr.pl na dysku i na koncie webr.pl
Więc da się to jakoś zrobić z dobrą bazą danych czy nie?
tosiek - 25-01-2009, 12:20
hacker06 napisał/a: | Więc da się to jakoś zrobić z dobrą bazą danych czy nie? |
Oczywiście że się da, ściągnij backup z webr (tak aby mieć polskie znaki lub jakieś krzaczki) zapewne wystarczy otworzyć w Edit Plusie plik bazy w kodowaniu utf8 i będzie widać polskie znaki i potem zapisz z kodowaniem latin2.
Następnie ważne jest aby przy wgrywaniu bazy wybrać kodowanie dla pliku latin2 (przy imporcie w phpmyadminie), przypuszczam iż właśnie pomijałeś punkt z wybraniem kodowania przy imporcie
I potem wgrywasz pliczek mysql4.php i cieszysz się kodowaniem latin2 w swojej bazie i polskimi znakami na forum
hacker06 - 25-01-2009, 12:24
Ajjj robiłem błąd przez nieuwagę, dzięki za pomoc. Pomógł leci
@edit,
Zapomniałem, że nie moge dać pomógł w nie swoim temacie ;/
adrkwi - 03-02-2009, 12:10
A ja mam taki problem. W mojej bazie danych znaki ?? odpowiadają dwóm literom ą i ę z resztą też jest podobnie ł i ó też mają ten sam znak.
Poza tym replace z takimi ustawieniami jak tu są przedstawione :
Nic nie poprawia ! A gdy odznaczę to poprawie wszystko i zamiast łódź mam óódź lub łłdź zależy co zastąpię
zna ktoś rozwiązanie ?
tosiek - 03-02-2009, 13:44
adrkwi, czytaj dokładnie na samym początku jest
tosiek napisał/a: | ----≤≥ Jeśli w pliku z kopią zapasową bazy bądź w samej bazie danych zamiast polskich znaków diakrytycznych są znaki zapytania ??? oznacza to że tego nie da się już naprawić !! ( jeśli są wyświetlane na forum oznacza to że można to poprawić, ale w bazie lub w pliku z kopią są krzaki lub polskie znaki { w ostateczności można użyć słownik np. w ms word lub http://www.gzegzolka.com/poliszynel/ ) ≤≥----- |
zapewne źle wykonany backup
adrkwi - 03-02-2009, 13:48
backup wykonany wedle instrukcji.
na forum wyświetlają się te "??" czyli bo bazie ?
tosiek - 03-02-2009, 13:52
coś mi się wydaje że masz mixa utf8 z latin2
Więc musisz odpowiednio otworzyć bazę i potem pozamieniać znaki podwójne typu:
Âą na ą (masz cos w stylu mojego avatara)
Więc musisz sam ręcznie dobrać znaczki
Tyle że musisz mieć dobry backup
PS i nie patrz na forum tylko na plik z backupem bazy
adrkwi - 03-02-2009, 13:56
a gdyby zrobić taki nr ze zmianą przemo na phpbb3 to idzie potem te krzaki poprawić ?
Bo ręcznie ponad 7000 wierszy poprawić to raczej ...
tosiek - 03-02-2009, 14:06
Mi z phpbb2 (w tym Przemo) udało mi się poprawnie ze znakami polskimi na phpbb3 tylko i wyłącznie z kodowaniami: latin1 oraz latin2. Jak przerobiłem sobie bazę bb2 na utf8 to w phpbb3 (który pracuje w utf8) wykrzaczył się.
A poza tym nie wiem co ty w ogóle robisz. Przenosisz forum ? Wgrywasz backup np. po hacku ? Czy po prostu się bawisz ?
Musisz mieć dobry backup bazy, czyli taki gdzie nie ma znaków zapytania zamaist polskich znaków ale są albo polskie znaki albo jakiekolwiek krzaki zamaist nich
Więc jeśli chcesz przejść na phpbb3 to najpierw polecam ci naprawić bazę i sprowadzić ją do kodowania latin2, potem założyć nową bazę z kodowaniem utf8. Np możesz założyć bazę i wykonac w niej zapytanie
Kod: | ALTER DATABASE `nazwa_bazy` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; |
aby upewnić się że ta nowa baza jest ustawiona w utf8
Następnie instalujesz na nowej bazie w utf8 skrypt phpbb3, potem konwertujesz ze starej bazy
Polecam sposób z dodatkową baza bo mi tylko w ten sposób udało się bez problemu użyć konwertera.
adrkwi - 03-02-2009, 14:14
żeby było śmiesznej automatyczny backup, który robi się codziennie nie zrobił całej kopii bazy także nawet na nim postów nie ma :]
Cytat: | Musisz mieć dobry backup bazy, czyli taki gdzie nie ma znaków zapytania |
niestety brak.
Czyli forum, posty z bazy do kosza ?
Arczieku - 04-02-2009, 15:13
Przy wgrywaniu bazy wywala mi taki błąd
Kod: | Błąd
zapytanie SQL:
--
-- Baza danych: `arczieku_a`
--
CREATE DATABASE `arczieku_a` DEFAULT CHARACTER SET latin2 COLLATE latin2_general_ci;
MySQL zwrócił komunikat: Dokumentacja
#1007 - Can't create database 'arczieku_a'; database exists |
tosiek - 04-02-2009, 17:17
Arczieku, zrobiłaś kopię bazy, a nie masz uprawnień do tworzenia baz z poziomu mysql
Arczieku napisał/a: | Can't create database 'arczieku_a'; database exists |
Nie można utworzyć bazy bo już istnieje
Usuń z pliku z kopią bazy linijkę:
CREATE DATABASE `arczieku_a` DEFAULT CHARACTER SET latin2 COLLATE latin2_general_ci;
|
|
|