Promocja językowa LINGO

Cookie i polskie znaki

Tu można dyskutować o skryptach w języku JavaScript (nie mylić z Javą)

Moderator: Moderatorzy

Cookie i polskie znaki

Postprzez Armon Pn lip 21, 2008 20:19 pm

Witam,

Zauważyłem, że zapisując jakiekolwiek polskie znaki do zmiennej cookie w JavaScript są one później nieprawidłowo interpretowane.

Niestety nawet funkcja escape(), a następnie unescape() nie pomaga.

Zamiast polskich znaków, w cookies znajdują się różne "dziwolągi" ;)

Co gorsza dzieje się tak tylko w Firefox'ie. W IE wszystko jest w porządku.

Co ciekawe używająć escape() oraz unescape() może spowodować to error serwera!

Kod obrazujący problem:
Kod: Zaznacz cały
<script type="text/javascript">

function pokaz()
{
   alert("To jest ok: "+document.dane.nazwisko.value);
   
   document.cookie = document.dane.nazwisko.value;
   
   alert(document.cookie);

}
</script>

<form name='dane'>
Imię: <input value='±¶żł' id="nazwisko" type="text" />
<input type='button' value='potwierdz' onclick='pokaz();' />
</form>


Najlepsze jest to, że IE interpretuje trochę inaczej "±¶" niżeli Firefox w formularzu. W IE muszę w formularzu wpisać dokładnie "ąś", natomiast w Firefox TRZEBA wpisać '±¶', żeby pierwszy alert wywołał prawidłowy message...

Czy wie ktoś może jak rozwiązać ten problem, byłbym bardzo wdzięczny. W google nie mogę niczego znaleźć na ten temat. Pewnie dlatego, że na angielskich stronach nic o polskich znakach nie piszą :lol:

Pozdrawiam serdecznie,

Armon
Life is brutal and full of zasadzkas but sometimes is good while and for this good while warto life ;)
http://videokurs.pl :-)
Avatar użytkownika
Armon
zaawansowany
zaawansowany
 
Posty: 389
Dołączył(a): Wt paź 31, 2006 23:45 pm

Re: Cookie i polskie znaki

Postprzez mnabialek Wt lip 22, 2008 21:38 pm

A jest w nagłówku pliku HTML poprawne kodowanie i plik jest poprawnie zakodowany?
Promocja na abonament w serwisie - kup lub poleć innym - szczegóły na Abonament w serwisie
Avatar użytkownika
mnabialek
Administrator
Administrator
 
Posty: 657
Dołączył(a): Śr paź 25, 2006 14:05 pm
Lokalizacja: Częstochowa

Re: Cookie i polskie znaki

Postprzez Armon Wt lip 22, 2008 23:38 pm

No właśnie kodowane jest dobre :roll:

Ale głównie problem leży w serwer Internal Error, używająć escape i unescape prawdopodobnie kodowałoby dobrze... ale dziwne, że IE robi wszystko bez tego O.o

Tworząc cookie robie jeden ogólny cookie tzn. korzystałem z tej strony: http://codepunk.hardwar.org.uk/ajs26.htm

W niektórych tutorialach zauważyłem, że trzeba nazywać cookie'sy. No ale bez tego też dobrze działa dopóki się nie użyje polskich znaków...
Life is brutal and full of zasadzkas but sometimes is good while and for this good while warto life ;)
http://videokurs.pl :-)
Avatar użytkownika
Armon
zaawansowany
zaawansowany
 
Posty: 389
Dołączył(a): Wt paź 31, 2006 23:45 pm

Re: Cookie i polskie znaki

Postprzez mnabialek Śr lip 23, 2008 16:06 pm

Sprawdź taki kod:

Kod: Zaznacz cały
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>

<script type="text/javascript">

function pokaz()
{
   var cookieName='testCookieTest';

   nazwisko = document.getElementById('nazwisko');     
   document.cookie = cookieName+'='+escape(nazwisko.value);
   
   
   // read
   // source - http://www.javascripter.net/faq/readinga.htm
   
   var theCookie=""+document.cookie;
   var ind=theCookie.indexOf(cookieName);
   if (ind==-1 || cookieName=="")
      alert ('brak cookie');
   var ind1=theCookie.indexOf(';',ind);
   if (ind1==-1)
      ind1=theCookie.length;
   
   alert (unescape(theCookie.substring(ind+cookieName.length+1,ind1)));         

}
</script>

<form name='dane'>
Imię: <input value='ąś' id="nazwisko" type="text" />
<input type='button' value='potwierdz' onclick='pokaz();' />
</form>
</body>
</html>
Promocja na abonament w serwisie - kup lub poleć innym - szczegóły na Abonament w serwisie
Avatar użytkownika
mnabialek
Administrator
Administrator
 
Posty: 657
Dołączył(a): Śr paź 25, 2006 14:05 pm
Lokalizacja: Częstochowa

Re: Cookie i polskie znaki

Postprzez Armon Cz lip 24, 2008 00:48 am

http://eskoal.pl/page/test.htm - tutaj dałem ten kod - działa.

Ale chodzi o fakt tego, że moje też działało, ale na krótką metę - zresztą tak samo jak ten kod.

Proszę wpisać ąś, wcisnąć kombinacje (firefox) CRLT + R i wystąpi error typu:

Kod: Zaznacz cały
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@eskoal.pl and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


Niestety w praktyce samo się takie coś pokaże bo np. zaraz kogoś wyślę na inną stronę. (jeszcze będzie OK, ale zaraz jeżeli ta osoba wciśnie przycisk WSTECZ to serwer leży dla tej osoby :/)

Może powinienem się skontaktować z moim hosterem? Może to dzieje się tylko tak u mnie?

Pozdrawiam serdecznie
Life is brutal and full of zasadzkas but sometimes is good while and for this good while warto life ;)
http://videokurs.pl :-)
Avatar użytkownika
Armon
zaawansowany
zaawansowany
 
Posty: 389
Dołączył(a): Wt paź 31, 2006 23:45 pm

Re: Cookie i polskie znaki

Postprzez mnabialek Cz lip 24, 2008 07:45 am

No dobrze, ale w jakim kodowaniu jest zapisany plik? Bo na pewno nie w utf-8 - na stronie http://eskoal.pl/page/test.htm po wejściu powinny się wyświetlać poprawne polskie znaki, inaczej oznacza to, że plik jest zapisany w niepoprawnym kodowaniu w stosunku do tego co zostało zadeklarowane...
Promocja na abonament w serwisie - kup lub poleć innym - szczegóły na Abonament w serwisie
Avatar użytkownika
mnabialek
Administrator
Administrator
 
Posty: 657
Dołączył(a): Śr paź 25, 2006 14:05 pm
Lokalizacja: Częstochowa

Re: Cookie i polskie znaki

Postprzez Armon Cz lip 24, 2008 10:07 am

Aaaa no tak, dobra zmieniłem na UTF8 Encoding (w/o BOM) i na UTF8 Encoding (with BOM). W obu przypadkach jest tak samo.

No i niestety w obu przypadkach na stronie: http://eskoal.pl/page/test.htm dalej występuje ten sam błąd.

Pozdrawiam serdecznie
Life is brutal and full of zasadzkas but sometimes is good while and for this good while warto life ;)
http://videokurs.pl :-)
Avatar użytkownika
Armon
zaawansowany
zaawansowany
 
Posty: 389
Dołączył(a): Wt paź 31, 2006 23:45 pm

Następna strona

Powrót do JavaScript

Kto przegląda forum

Użytkownicy przeglądający to forum: Brak zalogowanych użytkowników i 0 gości

cron
ręceprecz odtybetu | Programista PHP | Pozycjonowanie www | Seo link directory | Pozycjonowanie Częstochowa | wizy do rosji | wizy do uzbekistanu