Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kodowanie bazy - na siłę utf...
Forum PHP.pl > Forum > Bazy danych > MySQL
3502274
Witam,

na swojej stronie przerabiam obcojęzyczny skrypt, tak by zrobić na nim strone z polskimi znakami. I od jakiegoś czasu nie moge sobie poradzić z tym by newsy zapisywały się do bazy z wszystkimi polskimi znaczkami "łąśęć".

Newsy wyglądają tak:
- http://mmocentrum.com/story-1-Aion-Online.html

Natomiast w bazie zminiłem kodowanie na UTF (na siłę...):
- http://img177.imageshack.us/img177/8848/26775684np3.jpg

Nadal nic to nie daje...

PS: Nie zależy mi na starych newsach strona jest dopiero stawiana. Jestem w stanie od nowa zapisać te newsy więc jakaś zmiana nie działająca w wstecz nie jest problemem. Pytanie tylko jak się z tym uporać...?
artega
Według zrzutu ekranu domyślne kodowanie znaków to latin1 a kolekcja to latin1_swedish_ci zamiast latin2 i latin2_general_ci (utf8/utf8_polish_ci). Wykonaj zapytanie zmieniające domyślne wartości
  1. ALTER DATABASE baza CHARSET latin2 COLLATE latin2_general_ci

zastąp baza swoją nazwą i to samo tyczy się tabel.
  1. ALTER TABLE tabela CHARSET latin2 COLLATE latin2_general_ci

Możesz również konwertować kodowanie w locie np.
  1. SELECT CONVERT(news USING utf8) AS news FROM tabela
3502274
Dzieki wielkie za pomoc!

Rozwiązanie to:
- zmiana kodowania całej bazy:
  1. ALTER DATABASE baza CHARSET latin2 COLLATE latin2_general_ci

- zmiana kodowania każdej komórki na "utf8_polish_ci"
- wykonanie operacji na konkretnej tabeli:
  1. ALTER TABLE tabela CHARSET latin2 COLLATE latin2_general_ci


Pozdrawiam, problem rozwiązany.
KrisP
Witam serdecznie,
Zrobiłem tak jak kolega wyżej sugerował ale niestety nadal w phpMyAdmin widzę krzaki :/
screen 1: http://tinyurl.com/4542an
screen 2: http://tinyurl.com/3jwu9j

Dziwna jest jednak sprawa bo gdy z poziomu php wyciągam dane to już wyświetlają się prawidłowo z polskimi znakami. Skrypty w php i strony html mam w utf-8.

Czy może ktoś doradzić jakieś rozwiązanie? Teoretycznie mogę zostawić tak ten problem bo jak napisałem wyżej dane na stronie wyglądają poprawnie ale tak chyba nie powinno być prawda?

Z góry dziękuję za pomoc.
piotrooo89
Mam taki sam problem ale narazie mnie to nie przeszkadza bo również do obsługi tych danych mam stonkę która poprawnie wyświetla. I czytałem na ten temat powodem tego jest zrypane kodowanie w bazie i probowałem konwertować znaki i jakoś nic nie pomogło sad.gif
b4x
W phpmyadmin zmień System porównań dla połączenia MySQL na utf8
KrisP
b4x: zmieniam zarówno na utf8_polish_ci jak i utf8_general_ci - ten sam efekt :/
b4x
Możesz wrzucić screena jak to wygląda ? ;-)
KrisP
Screen z krzakami dawałem wcześniej smile.gif
Główna strona phpMyAdmin wygląda tak: http://tinyurl.com/3l42f3 - jest to instalacja XAMPP.
b4x
wybierz bazę -> zakładka operacje -> Metoda porównywania napisów: - i co tam masz ? (zapewne latin2) :-) - jak tak zmień na utf8 smile.gif
KrisP
Miałem latin2 bo tak sugerowano wcześniej w tym temacie.
Zmieniłem na utf8_general_ci - bez zmian. utf8_polish_ci to samo.

Bardzo dziwny jest ten problem naprawdę...niemożliwe, że nikt nie ma więcej z tym problemów tongue.gif
b4x
Ja niedawno miałem podobny problem... lecz okazał się problem przy zapisie do bazy ;-) (ładnie czytało - w skrypcie, a w phpmyadminie krzaczki.)

Możliwe że także u Ciebie taki problem jest mhm
KrisP
Przy zapisie bazy ? tzn ? Opisz co i jak bo może uda mi się rozwiązać ten problem i u mnie.
b4x
Tzn. akurat ten problem mnie spotkał przy advAjaxie - bo przesyłałem dane za pomocą jego - a także pobierałem.

Wyświetlał wszystko ładnie itp, ale postanowiłem sobie zobaczyć w phpmyadminie czy wszystko jest OK - i nie było... ;-)

Kombinowałem i kombinowałem - myślałem że coś nie tak w skryptach js'a mam ( - bo za bardzo się na nich nie znam biggrin.gif )

- Ale okazało się, że wystarczy przy połączeniu z bazą :

  1. <?php
  2. mysql_query("SET NAMES 'utf8'");
  3. ?>


- Właśnie był to dla mnie dziwny problem - bo na innych skryptach wszystko ładnie pięknie (kodowanie domyślne utf-8.)
Na stronie utf-8 - advajax - utf8 - a krzaki w phpmyadminie smile.gif
KrisP
Wielkie dzięki ! Pomogło !

mysql_query("SET NAMES 'utf8'");

i wszystko śmiga smile.gif
stilly
Sluchajcie a ja mam dalej taki problem

Na forum kodowanie mam w UTF-8. Oryginalnie bylo w iso-8859-2 ale po przeprowadzce forum krzaczory sie wysypaly mi i musialem zmienic na utf-8. Problem polega w tym ze musze znowu zmienic server ale w bazie niemam polskich liter jak to towinno byc lecz sa krzaczki

tak jak ponizej na screenach z bazy










Poprzednia baze jak wgrywalem dobre pol roku temu na poprzednim serverze w bazie mialem ladnie polskie literki tak samo po exporcie do pliku lecz teraz przy exporcie wyrzuca mi krzaczki tak samo w bazie


przy przenoszeniu na nowy server nie moge w zaden sposob ustawic kodowania ani iso ani utf nie lapie. Jak moge zmienic kodowanie lub zmienic w prosty sposob krzaczory na polskie litery. Probowalem juz programem "Gżegżółka" ale przy operacji zmiany kodowania z automatycznego na utf8 nie moze rozpoznac aktualnego kodowania bazy z pliku .sql


Prosze o rade.

Pozdrawiam





@EDIT



Rozwiazalem problem napisalem wlasny konwerter w php ktory przekonwertkowal mi cala baze z utf do iso
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.