Wątek przeniesiony 2016-12-22 22:31 z Webmastering przez furious programming.

Kodowanie polskich znaków

0

Cześć,
Potrzebuję Waszej pomocy bo wszelkie możliwe sposoby jakich próbowałem zawodzą. Strona kodowane w utf-8. Dołączony do niej plik js również kodowany w utf-8. W chwili gdy zwracam w funkcji jakiś komunikat w postaci ciągu tekstowego z polskimi znakami, wyskakują krzaczki, np słowo niż wyświetla się tak: niż Kiedy zrobię w komunikacie ni\017C działa prawidłowo ale teraz nie sposób zapisywać każdą polską literę jako symbol unicode. Próbowałem różnych metod znalezionych w sieci, żadna nie działa. Niby błacha sprawa a siedzę nad tym już ponad 2h.

0

Po pierwsze - wklej jakiś kodzik :)
Po drugie - jesteś pewien że js jest w utf-8? Może to taka troszkę głupawa metoda ale u mnie działała zawsze.

  1. Tworzę projekt z netbeansie z utf-8
  2. Wrzucam dowolny plik do projektu i go otwieram w IDE - jak jest utf-8 to spoko, jak nie to powinniśmy dostać komunikat (to jest metoda zgodna z zasadą: "Jeśli coś jest głupie, ale działa, to nie jest głupie.")
0

Na 100% jest w utf-8 bo patrzyłem w firebugu z jakim kodowaniem wrzucany jest na serwer. Także jest utf-8. Chyba że serwer to olewa i sobie zamienia, nie mam pojęcia. Prosty warunek sprawdzający długość pola, funkcja na wejściu przyjmuje 3 parametry, wartość z pola, nazwę labela oraz komunikat błędu. I teraz sprawdzamy czy jest komunikat błędu, jeżeli jest to sprawdzam czy przekroczono ilość znaków, jeśli przekroczony wyświetlam alert z komunikatem jaki przyszedł do funkcji, np "Błąd, długość pola nie może być większa niż 5 znaków". I taki alert odziwo wyświetla się poprawnie. Natomiast jeżeli nie ma komunikatu podanego to system generuje alert z defaultowym komunikatem np: "Wprowadzony ciąg znaków jest za długi". I w tym komunikacie polskich znaków już niestety nie ma.

0

Nie ma problemu, np takie dwie funkcje które służą do sprawdzania czy wprowadzona wartość jest poprawna dla kodu pocztowego:

isValidZipCode = function(zipCode) {
                return zipCode.match(/[\d]{2}-[\d]{3}/g);
}

zipCode = function(zipCode)
        if(!isValidZipCode(zipCode)){
           alert("Błąd! Wprowadzona wartość nie jest prawidłowym kodem pocztowym!");
        }
}

I to niestety nie działa, polskie znaki się nie wyświetlają. Jeżeli zapiszę każdy polski znak w unicode to jest ok. Ale teraz nie jestem w stanie pisać każdego alertu w unikodzie bo to bezsens. Na pewno żadna konwersja nie działa. Sprawdziłem wszystkie kodowania. Nawet w firebugu jak podglądam skrypt to nie ma w nim polskich znaków tylko krzaki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0