Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Polskie znaki z ciasteczcka
Forum PHP.pl > Forum > Po stronie przeglądarki
rad11
Mam problem ustawiam sobie w PHP ciastka(z polskimi znakami):

  1. $langs = Langs::getAllTranslations();
  2.  
  3. foreach($langs as $index => $value){
  4. setcookie($index, $value);
  5. }


I pozniej probuje pobrac je w JS:

  1.  
  2. console.log(getCookie('t_hello'));
  3. function getCookie(cname) {
  4. var name = cname + "=";
  5. var ca = document.cookie.split(';');
  6. for (var i = 0; i < ca.length; i++) {
  7. var c = ca[i];
  8. while (c.charAt(0) == ' ')
  9. c = c.substring(1);
  10. if (c.indexOf(name) == 0)
  11. return c.substring(name.length, c.length);
  12. }
  13. return "";
  14. }


I tak np wyraz Cześć wygląda taK : Cze%25C5%259B%25C4%2587

W czym problem nagłówki są w UTF-8 i kodowanie plików też. Jakieś pomysły?

Niby decodeURI(getCookie()) działa.
trueblue
setcookie automatycznie urlencode'uje przy zapisie i urldecode'uje przy odczycie.
setrawcookie tego nie robi.
Comandeer
Osobiście po prostu dodałbym dekodowanie do getCookie i tyle.
rad11
Wystąpił kolejny problem z którym zastanawiam się jak go rozwiązać mianowicie.
Jest tyle tlumaczeń ze brakuje w przeglądarce miejsca na cookie`sy(tak mi sie wydaje) i mam komunikat

Kod
400 Bad Request
Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit.
Cookie


jakies pomysly?
nospor
Yyyyy..... ty tlumaczenia aplikacji wrzucasz do ciastek? A po grzyba?
rad11
Chce zrobić tak aby używać tłumaczeń i w js i w php tych samych
nospor
No a kto ci broni wrzucac tlumaczenia do kodu js bezposrednio? No nikt smile.gif Ciacha nie sluza do trzymania tlumaczen
rad11
w *.js nie bardzo jest jak wrzucic tlumaczenia z php
nospor
alez jest

<?php echo 'var tl = "jakies tlumaczenie";'; ?>
redeemer
Zrób sobie "sztuczny" plik locale.js generowany dynamicznie (podczas requestu) przez PHP na podstawie aktualnego słownika.
Np:
Kod
var locale = new Array();
locale['msg1']='Costam 1';
locale['msg2']='Costam 2';
...
rad11
Tak zrobiłem i działa na chwilę obecną super. Dzięki.
Comandeer
Hm… nie lepiej trzymać to w JSON-ie? I PHP i JS rozumieją ten format i nie trza robić osobnego pliku.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.