Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Konwersja "dziwnych" znaków
Forum PHP.pl > Forum > Przedszkole
Star
Witam
Mam w bazie różne slowa z różnych krajów i mam problem z ich wyświetlaniem ponieważ pomimo, ze w bazie zapisują się poprawnie to jednak literki zagraniczne w tych slowach wyświetlane na stronie są w postaci "?". Jest jakiś sposób aby wyświetlać je normalnie?
prz3kus
Tutaj masz odpowiedź: http://www.php.pl/Wortal/Artykuly/Pomysly-...e-znaki-a-MySQL
Crozin
Upewnij się że zarówno baza danych jak i Twój skrypt działa w kodowaniu UTF-8.
1. Pliki PHP/HTML powinny być zapisane w tym kodowaniu.
2. Serwer HTTP powinien nadać nagłówek Content-Type z informacją o tymże kodowaniu.
3. W HTML-u powinieneś zawrzeć informację o tym kodowaniu.
4. Baza danych powinna mieć ustawione kodowanie tabel na UTF-8.
5. Połączenie pomiędzy skryptem, a bazą danych powinno działać w UTF-8.
KsaR
Cytat(Crozin @ 25.06.2015, 07:58:47 ) *
Upewnij się że zarówno baza danych jak i Twój skrypt działa w kodowaniu UTF-8.
1. Pliki PHP/HTML powinny być zapisane w tym kodowaniu.
2. Serwer HTTP powinien nadać nagłówek Content-Type z informacją o tymże kodowaniu.
3. W HTML-u powinieneś zawrzeć informację o tym kodowaniu.
4. Baza danych powinna mieć ustawione kodowanie tabel na UTF-8.
5. Połączenie pomiędzy skryptem, a bazą danych powinno działać w UTF-8.

Co do 4 punktu.
Ja osobiście zaleciłbym utf8mb4. Obsługuje znaki 4bajtowe także (a nie jak utf8 do 3 bajtów).
Czyli może sporo pomóc ;-).

Ostatnio gdy testowałem znaki z ww. kodowania (4-bajtowe),
Na forum gry wysyłało pustą wiadomość (nie blank-space) tylko pustą, bez szerokości postu itp.
W innej grze wyłączyło mi ją przy próbie wysłania na czacie tongue.gif.
(Przykładowy znak: "🎶").
Także w bazie danych lepiej utf8mb4 według mnie ;-).
Crozin
Cytat
Ja osobiście zaleciłbym utf8mb4. Obsługuje znaki 4bajtowe także (a nie jak utf8 do 3 bajtów).
To chyba jakaś dziwna przypadłość MySQL, bo UTF-8 sam w sobie jak i każde inne kodowanie UTF obsługuje wszystkie znaki Unikodu. Co więcej UTF-8 z definicji obsługuje do 4 bajtów na znak.
KsaR
Cytat(Crozin @ 25.06.2015, 08:57:10 ) *
To chyba jakaś dziwna przypadłość MySQL, bo UTF-8 sam w sobie jak i każde inne kodowanie UTF obsługuje wszystkie znaki Unikodu. Co więcej UTF-8 z definicji obsługuje do 4 bajtów na znak.

http://wpzen.pl/moda-na-emoji-nie-ominela-...iez-wordpressa/
Przykład; ( w wp. 4.2 takze zmieniono na utf8mb4) itp. Duzo o tym w google.
Crozin
Jak napisałem, to była tylko ułomność MySQL-a, nie UTF-8 czy ogólnie baz danych - https://mathiasbynens.be/notes/mysql-utf8mb4 Autor nie podał z czego konkretnego korzysta.
KsaR
Cytat(Crozin @ 25.06.2015, 09:05:49 ) *
Jak napisałem, to była tylko ułomność MySQL-a, nie UTF-8 czy ogólnie baz danych - https://mathiasbynens.be/notes/mysql-utf8mb4 Autor nie podał z czego konkretnego korzysta.

Czytałem to pare dni temu ;-).

Warto było wspomnieć tak czy inaczej,
Bo Mysql+php na większości stron to niemal standard.
Rzadziej inne bazy itp..
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.