• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z kodowaniem litery "ó"

VPS Starter Arubacloud
0 głosów
767 wizyt
pytanie zadane 6 czerwca 2017 w PHP przez Adiks Nowicjusz (240 p.)
Cześć wszystkim, mam mały problem, nie wiem, czy coś źle robię, może będzie ktoś wiedział jak to naprawić. Pytanie odnosi się do odcinka Pana Mirosława - KURS PHP (#2) SYSTEM LOGOWANIA DO STRONY. SESJA. WSTRZYKIWANIE SQL (http://miroslawzelent.pl/kurs-php/logowanie-do-strony-sesja-wstrzykiwanie-sql/).

W przypadku, gdy stworzymy użytkownika "Józek" to jakiś problem występuje przy logowaniu (chyba po stronie bazy), ponieważ nie potrafi odkodować tego imienia i informuje, że nie ma takiego użytkownika. W internecie nie potrafię znaleźć informacji jak naprawić ten błąd, natomiast jest sporo podobnych pytań z problemem kodowania litery "ó" - sprawdziłem jest problem tylko z tą literą, pozostałe polskie znaki typu ą, ł, ź działają poprawnie.

Z góry dzięki za rady.

1 odpowiedź

0 głosów
odpowiedź 6 czerwca 2017 przez To Ja Początkujący (490 p.)

Może spróbuj w bazie danych zmienić metodę porównywania znaków dla nazwy użytkownika na utf8_bin. Ja tym sposobem naprawiłem nieco inny problem (przy utf8_polish_ci baza nie zwracała uwagi na wielkość liter), ale zawsze warto spróbować. wink

komentarz 6 czerwca 2017 przez Adiks Nowicjusz (240 p.)
Niestety nie, ale co zauważyłem to problemem jest z htmlentities (jak wrzucę w komentarz to wszystko ładnie działa), natomiast mam:

$login = htmlentities($login, ENT_QUOTES, "UTF-8");

i cały czas to samo :/

macie jakieś pomysły?
1
komentarz 6 czerwca 2017 przez To Ja Początkujący (490 p.)
A spróbuj z tym:

$login = htmlspecialchars($login, ENT_QUOTES, "UTF-8");

Chociaż z tego co wiem powinno się używać raczej htmlentities.
komentarz 7 czerwca 2017 przez Adiks Nowicjusz (240 p.)
Dzięki To Ja, rzeczywiście htmlspecialchars zwraca wyniki prawidłowo, natomiast może ktoś zna metodę, dzięki której będzie można użyć htmlentities?
komentarz 7 czerwca 2017 przez efiku Szeryf (75,160 p.)
Oczywiście, podczas połączenia PDO dorzuć charset=utf8 lub w przypadku dziwnego mysqli dodać na początku query z SET NAMES utf8.

Dawno nie miałem problemów z kodowaniem.
1
komentarz 9 czerwca 2017 przez Adiks Nowicjusz (240 p.)
Dlaczego uważasz, że mysqli jest dziwne? Używam akurat mysqli, mam dodane SET NAMES utf8, natomiast cały czas jest ten sam problem :/

$polaczenie->query("SET NAMES utf8");

Trochę czytałem o PDO, w czym jest lepszy poza tym, że współpracuje z większą ilością baz danych?
komentarz 10 czerwca 2017 przez efiku Szeryf (75,160 p.)
Zapewnia większą abstrakcję podczas połączenia do różnych driverów baz.
Ma normalny interfejs i bindowanie parametrów.
Mogę rzec tak:
Mysqli się bawisz w piaskownicy (tj w szkole), z PDO po prostu działasz.
Po PDO pewnie przyjdzie czas na Doctrine, które bazuje na PDO.

Jak będziesz chciał zrobić coś w Posgresie, to też użyjesz mysqli? Czy raczej weźmiesz PDO, bo zapewnia lepsze wsparcie, a aktualizacja liba to tylko apt update.
Tak czy siak będziesz musiał sięgnąć po PDO. Więc może warto przejść i poznać już teraz możliwości i nie tracić czas ;)

-> baza ma byc utf8, lub bardziej rozszerzone utf8mb4
-> W pdo wystarczy dać w dsn:  &charset=utf-8
-> Nie kodować w notatnikach windowsowych tylko najlepiej pisać w PHPStormie, choćby na początek by zobaczyć szybko swoje błędy. Nie dość, że się nauczysz, to jeszcze pliki będziesz miał w kodowaniu utf-8
-> Jeśli masz już jakiś html, to dodaj tag meta charset z utf8
 

Jak to nie styknie, to znaczy, że w bazie masz zle zapisane te ogonki.

Szkoda, że jeszcze w 2017 są problemy z kodowaniem, ale to minus tego, że stare poradniki nie są kasowane tylko siedzi takie coś z 2007 roku i eh..

Podobne pytania

0 głosów
3 odpowiedzi 2,616 wizyt
pytanie zadane 18 października 2016 w PHP przez Qita Nowicjusz (160 p.)
0 głosów
4 odpowiedzi 558 wizyt
pytanie zadane 21 września 2016 w Systemy operacyjne, programy przez ThePatrykOOO Dyskutant (8,400 p.)
0 głosów
3 odpowiedzi 498 wizyt
pytanie zadane 21 grudnia 2016 w PHP przez Klik Obywatel (1,540 p.)

93,023 zapytań

141,986 odpowiedzi

321,288 komentarzy

62,369 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...