![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 1 Dołączył: 26.08.2009 Skąd: Szczecin Ostrzeżenie: (10%) ![]() ![]() |
Mam dosyć dziwny problem z kodowaniem między stroną, a bazą danych MySQL. W bazie mam zapisane dwa rekordy: nazwa i skrót. Nazwa jest podawana przez użytkownika, a skrót jest generowany automatycznie przez skrypt (pobiera on pierwsze trzy znaki i sprawdza, czy taki skrót istnieje - jeśli tak to dopisuje cyfrę).
Wszystko odbywa się przy pomocy zwykłego formularza. Po wysłaniu i wygenerowaniu skutu pojawia się potwierdzenie zawierające nazwę i wygenerowany skrót. Potem jest to zapisywane do bazy i wyświetlana jest lista zwierająca nazwę i odpowiadający jej skrót. I tutaj pojawia się mój problem. Nazwa zawsze, jest poprawnie wyświetlana (zawiera polskie znaki), a skrót nie - zawsze ma znak zapytania w rombie zamiast polskich znaków. Sprawdzałem w bazie, i tam zarówno nazwa jak i skrót wpisują się z krzaczkami zamiast polskich liter, ale wszelkie sprawdzenia, porównania itp. dokonywane na bazie zawsze są poprawne. Jak już mówiłem, wyświetlanie nazwy na stronie jest zawsze poprawne - zawsze znaczy i w momencie wyświetlenia potwierdzenia jak i listy, dlatego to co się dzieje w bazie średnio mnie niepokoi bo wynik nazwy mam poprawny. Parę info dot. mojej strony i środowiska programistycznego, może to kogoś na coś naprowadzi: - używam systemu szablonów smarty ze zdefiniowanym kodowaniem utf-8 - na wszystkich stronach html jest zdefiniowany meta-tag kodowania utf-8 - pliki tpl są tworzone w notepad++ z kodowaniem utf-8 - piszę w NetBeans, który ma odgórne kodowanie plików utf-8 Tak więc już nie wiem co jest nie tak, z tym skrótem, a przyznaje, że jest to rzecz, która mnie już bardzo irytuje. Może ktoś ma jakiś pomysł, jak ten problem rozwiązać? Jeśli coś jeszcze mam sprawdzić to napiszcie. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 1 Dołączył: 26.08.2009 Skąd: Szczecin Ostrzeżenie: (10%) ![]() ![]() |
Poprawiłem już kodowanie tabeli i bazy przy pomocy instrukcji z tego artykułu o MySQL. Teraz w bazie nie mam już krzaczków, jak i na stronie przy wywołaniu. Jednak cały czas coś jest nie tak, a mianowicie ucina mi trzeci znak jeśli w skrócie pojawia się polski znak, lub pokazuje znak zapytania w rombie ( nie wiem jeszcze do końca od czego to zależy).
W czasie tworzenia skrótu, pierwszy znak przy pomocy funkcji strtolower jest zamieniany na małą literę, jednak jeśli jest to polski znak, to już ta funkcja nie chce go zmienić. Tak więc, niby coś się poprawiło, ale niedużo, bo nadal nie mam tego czego chciałem, tyle tylko, że teraz ładniej mi się wyświetla wszystko w bazie. Aha, zapomniałem dodać, że jak ręcznie dopiszę polski znak w tabeli to w podglądzie na stronie już się dobrze wyświetla. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 12:01 |