[advAjax] Kodowanie znaków przy insercie |
[advAjax] Kodowanie znaków przy insercie |
25.05.2006, 19:33:12
Post
#1
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 4 Dołączył: 22.04.2006 Skąd: Kraków Ostrzeżenie: (0%) |
Mam problem z kodowaniem znaków które są dodawane do bazy. Zamiast polskich znaków zmienia na inne, np z ą robi a. W bazie mam kodowanie iso-8859-2
W jaki sposób mam rozwiązać ten problem? -------------------- |
|
|
25.05.2006, 20:25:49
Post
#2
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 26.10.2004 Skąd: Rybnik Ostrzeżenie: (0%) |
powinno pomóc... -------------------- Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox |
|
|
25.05.2006, 20:36:58
Post
#3
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 4 Dołączył: 22.04.2006 Skąd: Kraków Ostrzeżenie: (0%) |
niestety nie pomaga, teraz dodaje tylko
napisałe: encodeURIComponent() to znowu zapisuje: %C5%A1%C5%82 -------------------- |
|
|
25.05.2006, 20:45:11
Post
#4
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 26.10.2004 Skąd: Rybnik Ostrzeżenie: (0%) |
no to jest jeszcze opcja typu iconv bądź mb_convert_variables
-------------------- Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox |
|
|
26.05.2006, 15:51:18
Post
#5
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 4 Dołączył: 22.04.2006 Skąd: Kraków Ostrzeżenie: (0%) |
Dalej mi to nie działa.
Robie tą strone społecznie i niech ktoś nie myśli że będę na tym zarabiał, chodzi mi o to że dalej są informacje o cenie itp. Robie strone dzięki której będzie można sie wymieniać danymi osób które mają książkę do sprzedania i by kupujący mógł sie z nim skontaktować. Prosze o pomoc. Siedze już nad tym problemem drugi dzień i nie wiem jak go rozwiązać. Podam kod: plik: index.php
następnie: add.js Kod function addBook() { var opis = $("opis").value; advAJAX.post({ url : "addBook.php", parameters : { "opis" : opis }, onSuccess : function(obj) { if (obj.responseText == 1) { $("komunikat").innerHTML = "Twoja ksiazka zostala dodana do bazy!"; } else { $("komunikat").innerHTML = "BLAD"; } } }); } i plik dodający: addBook.php
W bazie mam ustawione kodowanie latin2. Jak w pliku addBook.php ręcznie wpisze jakieś słowo z polskimi znakami to w bazie jest poprawnie zapisane, błędy powstają przy przesyłaniu do pliku addBook.php. Próbowałem to co @anopak pisał ale nic nie pomogło. Gdzie może być jeszcze jakiś błąd, nie mam już siły Plik index.php jest mało ważny, ale dałem. Czy ktoś ma jakiś pomysł jak to rozwiązać? Albo czy ktoś robił coś takiego i czy nie mógłby pokazać jego przykładu? Prosze o pomoc. -------------------- |
|
|
26.05.2006, 18:52:11
Post
#6
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 26.10.2004 Skąd: Rybnik Ostrzeżenie: (0%) |
spróbuj tak:
lub lepiej, jeżeli masz możliwość użycia mb_convert_variables:
*mb_convert_variables działa na zmiennej(czyli ją zmienia odrazu) a zwraca true lub false... zreszta tak jak to pisze w manualu... ja korzystam z mb_convert_variables i wszystko mi działa dobrze -------------------- Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox |
|
|
26.05.2006, 19:57:34
Post
#7
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 4 Dołączył: 22.04.2006 Skąd: Kraków Ostrzeżenie: (0%) |
dalej mi nie działa
mb_convert_variables() - jak próbuje użyć tej funkcji to parser wywala mi błąd. Wydaje mi sie że to coś w advAjaxie jest coś nie tak, bo sprawdziłem co po kolei gdzie następuje zmiana znaków i w funkcji w której przesyłam zapytanie jest ok, ale po przjściu przez avdAjaxa wychodzą znaczki, próbowałem tych porad ale nie pomagają. AdvAjax koduje dane przez encodeURIComponent(), tylko teraz jak to zamienić na normalne znaki? Próbowałem też urldecode w php oczywiście ale nic. @anopak czy mógłbyś mi pokazać twój przykład, bo już nie wiem co mam robić, ogłupiałem już. -------------------- |
|
|
26.05.2006, 20:31:18
Post
#8
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 26.10.2004 Skąd: Rybnik Ostrzeżenie: (0%) |
przepraszam za wprowadzenie w błąd powinno być tak:
gdyż dane przesyłane AJAX'em zawsze są w utf-8, dlatego przy zapisywaniu do bazy danych z ajax'a należy użyć utf-8, w przypadku odczytu danych z ajax'a, używamy iso-8859-2 -------------------- Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox |
|
|
26.05.2006, 20:53:40
Post
#9
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 4 Dołączył: 22.04.2006 Skąd: Kraków Ostrzeżenie: (0%) |
Działa
Dzięki za wszystko @anopak Mam nadzieje że już będzie dobrze -------------------- |
|
|
9.08.2006, 07:55:55
Post
#10
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 9.01.2005 Ostrzeżenie: (0%) |
Mam identyczny problem. Używam klasy advAjax. Czy nie ma możliwości ustawienia jakiś parametrów w tej klasie aby dane były jednak przesyłane na serwer w iso-8859-2 a nie UTF? Bez konieczności użycia konwersji utf-8 do iso-8859-2?
Byłoby mi to baaardzo przydatne. Z góry dzięki za pomoc. |
|
|
9.08.2006, 08:38:05
Post
#11
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) |
W advAJAX nie ma możliwości przesyłania w innym kodowaniu niż UTF-8
Jak to ~anakin mawia: ma być UTF-8 i tyle |
|
|
9.08.2006, 09:34:56
Post
#12
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 9.01.2005 Ostrzeżenie: (0%) |
Szkoda... trochę mi to komplikuje sprawe. Niestety mam, że tak powiem narzut z góry, że muszę wrzucać do bazy treść w iso-8859-2 i nie ma innej możliwości. No cóż pozostaje mi tylko konwersja na z utf na iso:(
Dzięki! p.s. Jest jakaś funkcja do konwersji całych tablic? Chciałbym na poziomie kontrolera skonwertować całe $_REQUEST... jak nie to będę musiał użyć jakiejś funkcji rekurencyjnej. |
|
|
8.08.2007, 20:20:00
Post
#13
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 9.05.2007 Ostrzeżenie: (10%) |
Dzięki za pomoc
|
|
|
23.08.2007, 09:18:28
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) |
To mam pytanie z innej beczki. Mam formularz. Po kliknięciu wykonuje się advAjax.post.
W plikach, gdzie zapisuję dane dałem $sText = iconv('utf-8','iso-8859-2', $sText); i nic to nie dało (próbowałem mb_). Wysyłam także headera Macie jakieś pomysły (baze mam latin_2, mysql)? Podpowiem jeszcze, że używam handyEditor, który działa w utf-8. Funkcją handyEditor.getSource(); pobieram wygenerowany kod html i wysyłam tak jak wyżej napisałem. PS. Do bazy zapisują mi się "??" EDIT: ROTFL... wczoraj 3h siedziałem i nie działało. Dodałem zapytanie SET CHASR latin2 (czy jakoś tak) i działa. Dzieki... Ten post edytował bim2 23.08.2007, 09:27:21 -------------------- |
|
|
23.11.2007, 21:45:26
Post
#15
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 1 Dołączył: 23.07.2007 Ostrzeżenie: (0%) |
Dobrze że natrafilem na ten temat, pomogl mi rozwiazac problem z kodowaniem. Moderatorzy powinni go przykleic.
ja u siebie zrobilem tak, w pliku php ktory wywoluje ajax mam na poczatku
i caly plik jest w kodowaniu UTF-8, zmienilem porgramem CoreEditor. A w miejscach gdzie cos jest z bazy wyciagane to daje funkcje
mam na odwrot kodowanie w funkcji iconv poniewaz z bazy wyciaga tekst w iso i trzeba go na utf-8 przekodowac. Ten post edytował Rude Dude 23.11.2007, 21:46:50 |
|
|
Wersja Lo-Fi | Aktualny czas: 20.04.2024 - 02:10 |