Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Znaki specjalne są zamieniane na "?"
Forum PHP.pl > Forum > PHP
Maciek_#_&
Witam,

Co może być przyczyną, że jakieś znaki specjalne jak np:
◕◕人\
Są zamieniane na "?questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif?" ?

Strona kodowana w UTF8, w bazie danych wpisy widnieją jako "?questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif?", przed wysłaniem, po wklejeniu do input'a wyświetla sie poprawnie, dopiero po wysłaniu zamienia sie na "?questionmark.gif?".

W innych miejscach, takie "znaki specjalne" wyświetlają sie poprawnie. (i w bazie również widnieją jako ◕◕人\ )

Zauważyłem że w formularzu przesyłania danych do bazy danych jest "htmlspecialchars_uni", a w innych "jsspecialchars"
Dokładna funkcja jsspecialchars:
  1. $string = preg_replace(array("#\<\!--.*?--\>#", "#&(?!\#[0-9]+;)#"), array('','&amp;'), $str);
  2. return strtr($string, array("\n" => '\n', "\r" => '\r', '\\' => '\\\\', '"' => '\x22', "'" => '\x27', '<' => '&lt;', '>' => '&gt;'));
CuteOne
.... skoro wiesz gdzie leży problem to dlaczego nie sprawdziłeś czy bez tych funkcji znaki specjalne będą poprawnie wyświetlane?

paranoja...
Maciek_#_&
Cytat(CuteOne @ 11.09.2011, 22:58:51 ) *
.... skoro wiesz gdzie leży problem


Gdzie tak napisałem?


Już próbowałem kilku sposobów, m.in usuwanie tego co wyżej i nie dało to efektu.
tehaha
skoro usunięcie funkcji nie dało żadnego efektu to po co ją nam pokazujesz? chyba logiczne, że przyczyna leży gdzie indziej.

Cytat
W innych miejscach
Cytat
jakieś znaki
Słuchaj mógłbyś jasno opisać sytuację? Bo nie wiem czego oczekujesz po takim poście, który nic nie ma żadnych informacji.
Co to są inne miejsca, czyli gdzie jest to dobrze wyświetlane? Co to są jakieś znaki? chodzi o wszystkie znaki specjalnie, czy tylko nie które? W jaki sposób dodajesz te znaki do bazy? z poziomu skryptu czy np. przez phpMyAdmin?

Na początek pousuwaj te wszystkie funkcje, żeby upewnić się, że to nie one stanowią problem, potem trzeba będzie przyjrzeć się kodowaniu czy wszędzie jest takie samo
wewior
Cytat(Maciek_#_& @ 11.09.2011, 21:59:12 ) *
Strona kodowana w UTF8, w bazie danych wpisy widnieją jako "?questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif?", przed wysłaniem, po wklejeniu do input'a wyświetla sie poprawnie, dopiero po wysłaniu zamienia sie na "?questionmark.gif?".

W innych miejscach, takie "znaki specjalne" wyświetlają sie poprawnie. (i w bazie również widnieją jako ◕◕人\ )


Kilka rzeczy do sprawdzenia:
- czy baza mam poprawne kodowanie (raczej tak skoro w innych miejscach się wyświetla poprawnie ale sprawdzić warto)
- czy w innych miejscach o których piszesz dane też były dodawane z formularza?
- może jakiś plik który bierze udział w tym procesie jest w innym kodowaniu niż utf8 i stąd problem
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.