[HTML][PHP]Polskie znaki a jQuery |
[HTML][PHP]Polskie znaki a jQuery |
29.06.2011, 20:50:02
Post
#1
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 2 Dołączył: 29.07.2009 Ostrzeżenie: (0%) |
Witam,
Proszę pomóżcie bo już nie mam pomysłu gdzie i jak mogę zmienić sposób wyświetlania podpowiedzi podczas wpisywania tekstu w pole formularza. początek strony:
poniżej mam formularz :
Skrypt z tego formularza odwołuje się do pliku wyswietl_pozycje.php
Efekt jest taki: I wszystko ładnie działa za wyjątkiem polskich znaków , dane w tabeli mam zapisane systemem kodowania charset=iso-8859-2 , gdzie robię błąd bo siedzę nad tym już drugą godzinę i zwątpiłem w swoje możliwości. |
|
|
29.06.2011, 21:05:14
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) |
1. Jak wprowadzałeś dane do bazy? Poprzez jakiegoś menadżera? PhpMyAdmin? Czy skrypt z aplikacji?
2. Czy aby na pewno wszystkie pliki masz w tym kodowaniu jakie podałeś? 3. Czy ten modulik (autocomplete) nie korzysta czasem z AJAX'a do ładowania danych? Ja zawsze miałem problemy z ajaxem jeżeli używałem kodowania innego niż utf-8. Ten post edytował Sephirus 29.06.2011, 21:06:52 -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
29.06.2011, 21:23:11
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) |
Hmmm.
Przede wszystkim nie zrozumiałeś mnie do końca z tym kodowaniem - chodzi mi o kodowanie pliku - fizyczne bo to, że masz przy wyświetlaniu strony w META ustawione iso-8859-2 nie oznacza że znaki w danym pliku autentycznie są w tym kodowaniu. Każdy najmniejszy edytorek nawet typu notepad++ czy pitpad pozwoli Ci na sprawdzenie/przekonwertowanie kodowania znaków w pliku na żądane - radziłbym sprawdzić czy wszystkie skrypty (pliki) pośredniczące w działaniu tego autocomplete (czyli sam skrypt autocomplete, skrypt php do wyszukiwania, i skrypt strony) są w tym kodowaniu jakie masz w bazie czyli iso-8859-2. Jeżeli to nie pomoże a chcesz się upewnić czy to nie jest właśnie problem z przesyłaniem znaków z ISO-8859-2 przez AJAX to możesz stworzyć identyczną podstronę jak ta z tym polem wyszukiwania ale zakoduj ją w utf-8. zduplikuj skrypt php od wyszukiwania i wszystkie wyplute dane przekonwertuj z ISO-8859-2 na UTF-8 poprzez na przykład funkcję ICONV(...) - Jeżeli wtedy zadziała to oznacza to że trzeba szukać rozwiązania przesyłania znaków z ISO-8859-2 przez ajaxa. Jeszcze pomyślę nad tym - to tak na szybko. EDIT: powiem szczerze, że nigdy sam nie używałem innego kodowania niż utf-8 :/ z innymi kodowaniami miałem styczność jedynie parsując jakieś dane z innych stron, które miały inne kodowanie EDIT2: Nie wiem czy to jakiś pomysł ale spróbuj zmienić w przeglądarce kodowanie (gdzieś w widok->kodowanie) na utf-8 wszystko powinno być wtedy w krzaczkach ale może podpowiedzi będą w dobrym kodowaniu? Ten post edytował Sephirus 29.06.2011, 21:29:47 -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
29.06.2011, 21:32:20
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) |
jakikolwiek manual html'a:
<script type="text/javascript"> The default character encoding is ISO-8859-1 więc ustaw jeszcze charset pliki php muszą też generować znaki w odpowiednim kodowaniu a i możesz dodatkowo w nagłówkach (funkcja header) ustawić odpowiedni content-type.... mozilla i dodatki takie jak firebug (zakąłdka sieć) lub live http header i sprawdź co i gdzie jest wysyłane/odbierane... Ten post edytował zegarek84 29.06.2011, 21:37:32 -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
29.06.2011, 21:46:05
Post
#6
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 2 Dołączył: 29.07.2009 Ostrzeżenie: (0%) |
@Sephirus ,z tą funkcją ICONV potestuję może coś się uda ,ale jak byś wpadł na jakiś pomysł będę niezmiernie wdzięczny, oczywiście jak mi się uda do czegoś dojść na pewno dam znać
Cytat EDIT2: Nie wiem czy to jakiś pomysł ale spróbuj zmienić w przeglądarce kodowanie (gdzieś w widok->kodowanie) na utf-8 wszystko powinno być wtedy w krzaczkach ale może podpowiedzi będą w dobrym kodowaniu? Nic nie pomogło nawet po wywaleniu ze strony charset=iso-8859-2 Coś czuję że chyba przekonwertowanie bazy mnie nie ominie @zegarek84 , dzięki za sugestie ale wszystkie pliki które mam w tym projekcie są opatrzone odpowiednimi wpisami co do kodowania, poradź co zrobić żeby to co już mam w tej tabeli wyświetlić w poprawny sposób Ten post edytował kda 29.06.2011, 21:55:55 |
|
|
29.06.2011, 22:00:10
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) |
Ok ja napiszę na koniec tak
Aby nie było krzaczków musi być spełniona - nazwijmy to - "zasada potrójnej spójności" kodowania: 1. Kodowanie bazy 2. Kodowanie skryptów PHP 3. Kodowanie strony (w przeglądarce) Krok 3 masz na pewno załatwiony poprzez <META...> , krok 1 najprawdopodobniej też jeżeli masz tak jak piszesz bazę na ISO-8859-2. Problem najprawdopodobniej tkwi w kroku 2. Proponuje Ci jeszcze na szybko tak. Jak nie masz odpowiedniego programu pobierz Notepad++ otwórz w nim plik, który chcesz sprawdzić pod względem kodowania. Wybierz Format z menu na górze i zobacz czy czasem nie jest zaznaczone kodowanie utf-8 czy inne. Prawidłowo zaznaczone kodowanie powinieneś mieć w Format->Character sets->Eastern European->ISO-8859-2. Jeżeli nie jest zaznaczone to trzeba plik przekonwertować kilkając na to - przed tym jednak zrób backup Od razu będzie wiadomo czy to jest ok. Mam 4 pomysły czemu może nie działać. 1. Jeżeli skrypt PHP, który wrzucał dane do bazy był w innym kodowaniu mógł coś popsuć i nawet jak skonwertujesz pliki to nadal może się źle pokazywać - trzeba to sprawdzić 2. Jeżeli strona z formularzem dodająca dane do bazy była w złym kodowaniu (czy to znaków w pliku czy w tagu META) może to zadziałać jak w pkt. 1 3. Pliki do obsługi autouploadu są w innym kodowaniu i źle interpretują dane zwrócone ze skryptu wyszukującego. 4. Naprawdę nie wiem jak to jest z przesyłaniem ISO-8859-2 przez AJAX więc ja osobiście bym jeszcze sprawdził czy to może coś chrzanić (poczytał w necie). @zegarek84 - jak wiesz coś więcej to dopisz - co do charsetu w <script...> to chyba by aż tak nie popsuło ale też bym to za sugestią kolegi ustawił EDIT: hehe - może nie koniecznie Cię to czeka - trzeba zgrać wszystkie kodowania na 100% i wtedy jak to nic nie pomoże to proponuje (jeżeli się okaże że coś z kodowaniem jednak nie tak było) wrzucenie do bazy jakichś nowych polskich znaków i wyszukanie ich w formularzu - jeśli te wyświetlą się dobrze to wystarczy pokombinować z tymi które już są (trzeba by je było pobrać w ich kodowaniu, przekonwertować i wrzucić jeszcze raz - jeden mały skrypcik to załatwi o ile nie masz tam miliona rekordów ;P ) Ten post edytował Sephirus 29.06.2011, 22:02:39 -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
29.06.2011, 22:02:51
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) |
@zegarek84 , dzięki za sugestie ale wszystkie pliki które mam w tym projekcie są opatrzone odpowiednimi wpisami co do kodowania, poradź co zrobić żeby to co już mam w tej tabeli wyświetlić w poprawny sposób daj to gdzieś na żywo ad.1 dane były wprowadzane po przez skrypt który mam oczywiście z linią w pliku
może to nic nie znaczyć jeśli strona jest na darmowym hostingu i jeśli ten hosting wysłał nagłówki z innym kodowaniem (już kilka razy coś takiego widziałem) - więc najlepiej kodowanie wysyłać w nagłówkach odpowiedzi serwera header -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
29.06.2011, 22:20:32
Post
#9
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 2 Dołączył: 29.07.2009 Ostrzeżenie: (0%) |
Na dzisiaj łeb mi pęka , póki co wielkie dzięki za sugestie , a nadmienie że w pliku za pomocą którego mogę edytować jakiś wiersz , zmieniłem system kodowania na utf-8 , wybrałem pierwszą lepszą linię z ogonkami , zmieniłem -> zapisałem i co
po wpisaniu ładnie wyświetla tak jak powinno, jutro będę dalej kombinował wg. Waszych porad @Sephirus ,@zegarek84 , jeszcze raz dzięki za poświęcony czas, napiszę do jakich wniosków doszedłem |
|
|
29.06.2011, 22:25:40
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) |
Czyli coś jest na rzeczy ;P Super i dobranoc ja spadam
-------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
29.06.2011, 22:51:06
Post
#11
|
|
Grupa: Zarejestrowani Postów: 715 Pomógł: 47 Dołączył: 5.12.2010 Ostrzeżenie: (0%) |
Jakby coś nie wypaliło to można by na skrypcik spróbować wrzucić UTF-8:
<script src="src="../../javascript/jquery-1.3.2.js" type="text/javascript" charset="utf-8"></script> |
|
|
Wersja Lo-Fi | Aktualny czas: 20.05.2024 - 10:15 |