Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySql] Kodowanie hiszpańskich znaków
Forum PHP.pl > Forum > Przedszkole
Sondewerek
Witam,

Mam do zrobienia bazę danych, w której będą przechowywane jakieś stringi z hiszpańskimi literami/znakami.

Czytałem trochę tematów z tym związanych na innych forach i ustawiłem kodowanie tak:
System porównań dla połączenia MySQL: utf8_unicode_ci
Metoda porównywania napisów w tabelach: utf8_general_ci
Na stronie ze skryptem: header('Content-type: text/html; charset=UTF-8');

I wszystko ładnie pięknie, w bazie mam akcenty nad "Á é í ó ú ü", a zamiast "ñ ¿ ¡" są krzaki. Na stronie natomiast jest w drugą stronę. sad.gif Zmieniałem kodowanie na różny sposób (np. na latin2), ale efekt dalej ten sam.

Miał kiedyś podobny problem albo może mi pomóc z tym kodowaniem?

Za wszystkie propozycje z góry dzięki.

Pozdrawiam,
Sondewerek.
by_ikar
Wszędzie musi być kodowanie utf8. Pliki (html, php) również musza być w kodowaniu utf8. A jak w bazie ci pokazuje krzaki, mimo że wynik na stronie jest dobry, to po zalogowaniu do phpmyadmin ustaw sobie kodowanie.
Sondewerek
Ustawiłem kodowanie utf8 we wszystkich plikach. Na stronie wszystko dobrze wyświetla, ale w bazie są inne krzaczki.

Cytat(by_ikar @ 28.05.2012, 10:58:48 ) *
A jak w bazie ci pokazuje krzaki, mimo że wynik na stronie jest dobry, to po zalogowaniu do phpmyadmin ustaw sobie kodowanie.

Chodzi ci o 'System porównań dla połączenia MySQL' czy o jakieś inne ustawienie kodowania, o których nie wiem? Bo jeżeli to pierwsze, to mam ustawione.
by_ikar
Ciężko mi powiedzieć. Jeżeli tych danych w bazie nie ma dużo, spróbuj je jeszcze raz dodać (bez różnicy w jaki sposócool.gif, i sprawdź.
Sondewerek
No właśnie, że w bazie danych cały czas są krzaki, nawet po dodaniu nowych rekordów. Zależy mi na pozbyciu się ich, ponieważ baza będzie co jakiś czas eksportowana do pliku Excela, a krzaki nie będą tam mile widziane przez osoby trzecie.
by_ikar
Hmm, ciężko mi cokolwiek powiedzieć. Weź wyeksportuj te dane do excela i sprawdź czy nadal będą krzaki.
Sondewerek
No niestety, ale to co widać w bazie jest także w pliku z Excela... -.-

Ktoś inny, kto przejrzy ten temat, ma może jakiś pomysł?
viking
Masz gdzieś przykład tych danych (całej strony)? Wychodzi na błędne kodowanie w bazie.
Sondewerek
http://www.wats.ugu.pl/uzytkownicy.php tutaj jest przykład znaków na stronie.
A tak to wygląda w bazie: http://i45.tinypic.com/2hfuvy8.png
Metoda porównywania napisów w tabeli: utf8_general_ci
System porównań dla połączenia MySQL: utf8_unicode_ci
viking
A ustawiłeś w PHPMyAdmin dobre kodowanie? Próbowałeś połączyć się innym narzędziem (navicat, MySQL Workbench)?
Sondewerek
A można gdzieś jeszcze ustawić kodowanie oprócz tego, co wymieniłem wyżej? Sorry, że pytam, ale jestem prawie początkujący w phpmyadmin.

#BUMP!

Jest zajawka - jak wpiszemy dane ręcznie to znaki są zachowane w bazie jak i na stronce, jednak po ich eksporcie do excela znowu są krzaki. I teraz nie wiem czy dane są źle przesyłane skoro po ręcznym wpisaniu wszystkie ogonki i inne cuda normalnie się pojawiają a wysyłając z formularza są krzaki w bazie/excelu, a nie na stronce. :f
by_ikar
Te dane wpisujesz ręcznie poprzez stronę, czy phpmyadmina? Obstawiam że nie masz wszędzie ustawionego kodowania utf8. Pokaż kawałek kodu, najlepiej w miejscu w którym łączysz się z bazą. Druga kwestia, zainstaluj sobie lokalnie jakiegoś wampa (wampserver jest taki w wersji portable: http://sourceforge.net/projects/wampserver...a-2.7z/download ) i sprawdź tam, czy tam te znaki nadal będziesz miał uwalone.

Jak wszystko masz w tym samym kodowaniu (tabele w bazie, pliki, połączenie z bazą) to nie ma siły żeby to nie działało poprawnie.
IProSoft
Sprawdź kolejno:

- kodowanie plików, nie tylko tego od połączenia z bazą ale wszystkich używanych do wysyłania.
- system porównań dla połączenia MySQL w phpmyadmin
- metoda porównywania napisów w całej bazie
- metoda porównywania napisów w tabeli w której masz zapisane dane
- metoda porównywania napisów w kolumnie tabeli w której są dane.

Teoretycznie przy zakładaniu bazy wszystko powinno być jak kodowanie główne ale kto wie...
Sondewerek
Przekopałem internet 2 razy i znalazłem wybawcę.
Dodana linijka do config.php(plik, który przechowuje konfigurację do podłączenie się do bazy).
  1. mysql_set_charset('utf8');


/facepalm
/bicie_w_piersc

Dzięki wszystkim za pomoc!
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.