![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 3.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich. To mój pierwszy post na forum.
Mój problem wygląda tak, że próbowałem przekonwertować bazę i stronę tak, by poprawnie działała w formacie unikodowym. Niestety, ale podczas tego zadania poległem i zepsułem bazę danych. Gdy przywróciłem poprzednią problem pozostał. Problem jest zarówno z jednym serwisem strony, tj. z treścią generowaną z bazy, jak i z kanałem rss. Treść niepobierana z bazy wyświetla się poprawnie. Próbowałem funkcji iconv, niestety bez rezultatu. Strona: http://cipronex.boo.pl/tron/ |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Wg mnie za dużo razy przepuściłeś dane przez funkcję konwersji. Innymi słowy, najpierw zamieniłeś jednobajtową literkę Ś na jej dwubajtowy odpowiednik UTF-8, a później przepuściłeś to jeszcze raz tak, że każdy z tych dwóch bajtów został znów potraktowany jako pojedyncza jednobajtowa literka i zamieniony na jej odpowiednik UTF-8, dając razem cztery bajty.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 3.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wyłączyłem tę funkcję na stronie, tj. wyrzuciłem kod, zanim tutaj napisałem. Podejrzewam, że problem tkwi w czym innym.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Problem na pewno tkwi w czym innym, bo opisałem Ci objaw i ogólną przyczynę, która musi być taka, a nie inna, bo inaczej nie byłoby takich danych. Niestety, ciężko mi powiedzieć coś więcej, bo "zepsułem bazę danych" daje bardzo szeroki zakres tego, co mogłeś skopać. Fajnie by było, gdybyś opisał krok po kroku, co robiłeś i co zmieniałeś.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 3.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
1. Przestawiłem kodowanie całej bazy na utf-8.
2. Przestawiłem kodowanie całej tabeli na utf-8. 3. Przestawiłem kodowanie wszystkich pól zawierających tekst na utf-8. 4. Zmieniłem kodowanie strony na utf-8. 5. Dodałem do pliku config: Kod mysql_query('SET character_set_connection=utf8'); mysql_query('SET character_set_client=utf8'); mysql_query('SET character_set_results=utf8'); 6. W dalszym ciągu nie działało. Trafił mnie szlag. 7. Skasowałem całą tabelę i wrzuciłem od nowa z zrzutu, który wcześniej przygotowałem. 8. Wsadziłem funkcję iconv. 9. Wyrzuciłem funkcję iconv. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
1. Nie ma czegoś takiego, jak "kodowanie bazy".
2. Nie ma czegoś takiego, jak "kodowanie tabeli". 3. Nie ma czegoś takiego, jak "kodowanie pól zawierających tekst". 4. OK. 5. No, tu możemy już mówić o kodowaniu, aczkolwiek mogłeś to zrobić dużo prościej. 6. A jak miało działać, skoro w ogóle nie przekonwertowałeś danych w tej bazie? 7. JW. 8 i 9. Po co? Ten post edytował Zyx 3.02.2011, 17:08:36 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 3.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
1. Nie ma czegoś takiego, jak "kodowanie bazy". 2. Nie ma czegoś takiego, jak "kodowanie tabeli". 3. Nie ma czegoś takiego, jak "kodowanie pól zawierających tekst". Pisząc to miałem na myśli kolejno: to, co wyświetlało się w polu collation dla bazy danych, tabeli i pól zawierających tekst. Skrót myślowy. 5. No, tu możemy już mówić o kodowaniu, aczkolwiek mogłeś to zrobić dużo prościej. Z racji niedoboru wiedzy i środków zrobiłem to w ten sposób. 6. A jak miało działać, skoro w ogóle nie przekonwertowałeś danych w tej bazie? Jak wyżej. Z racji niedoboru wiedzy i środków, nie przekonwertowałem danych z tej bazy. 8 i 9. Po co? Żeby w locie przekonwertować dane z bazy. W dalszym ciągu pozostaje aktualne pytanie, co zrobić, by zmienić ten niekorzystny stan rzeczy. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Pierwsze trzy punkty służą do porównywania tekstów, więc nie mają związku z Twoim problemem. Jednak już teraz wiem, co zrobiłeś źle. Powinieneś NAJPIERW wyciągnąć dane z bazy do konwersji, a później zmieniać parametry połączenia. Później robisz jakimś programem konwersję na UTF-8 i wgrywasz dane od nowa.
Jeszcze nic straconego - połącz się phpMyAdminem z bazą i kodowaniem "latin2" na połączeniu, zrób dumpa i gotowe. Jeśli nic nie pomieszałeś w liście kroków, nic nie uległo straceniu. Ten post edytował Zyx 3.02.2011, 19:49:26 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 3.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo rozumiem, co to znaczy dump.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 41 Dołączył: 6.04.2009 Skąd: Gdańsk/okolice Ostrzeżenie: (0%) ![]() ![]() |
dump = zrzut bazy, z angielska (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 3.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Niestety, ale nie zadziałało.
Podbijam. Podbijam2. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 14:01 |