![]() |
![]() |
![]()
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%) ![]() ![]() |
@thek:
No szczerze powiedziawszy, to przeczytałem to w manualu, ale nie do końca nie wiedziałem o co chodzi. Dzięki za info. Rzeczywiście wystarczyło zamienić ta funkcję, plus dokonać paru konwersji i tyle. Wielkie dzięki za to info. Teraz mam tylko jeszcze jedno pytanie dot. długości napisów. Jak już mówiłem, skrót wykonuję, traktując nazwę, jako tablicę znaków i pobieram trzy pierwsze znaki, a jeśli już taki skrót istnieje dopisuję jeszcze dwa - . i 1. Jeśli nadal istnieje dodaje 1 do ostatniego znaku i tak aż do skutku. Jednak, jeśli w napisie występuje polski znak, to zajmuje on dwie pozycje w tabeli. Czy może ktoś mi poradzić, jak to obejść, żeby można było zrobic tak jak napisałem, również na ciągach z polskimi znakami? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 16:16 |