Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Łańcuch znaków utf-8
Forum PHP.pl > Forum > Przedszkole
freakman69
Witam,
mój problem polega na tym, że mam łańcuch znaków "r##s##", gdzie ## to liczby i chciałem wydobyć z niego te liczby do zmiennych i kod wygląda tak:

Kod
var buf0Str = "r1s1";
var buf1Str = "";
var z1,z2;
for (k=1; k< buf0Str.length; k++){
    if (buf0Str.charAt(k)!='s')
        buf1Str += buf0Str.charAt(k);
    else
         break;
                                
}
z1 = buf1Str;
buf1Str = "";
for (k++; k< buf0Str.length; k++){
    buf1Str += buf0Str.charAt(k);
                                    
}
z2 = buf1Str;


i to wszystko działa ok, dopóki w stringu (bo tak naprawdę do buf0Str pobieram sobie wartość z checkboxa, ktory jest w xml'u i jest kodowany jako utf-8) przekazuje wartość. długość "r1s1" jest równe 9 i się sypie skrypt, w jaki sposób można przekonwertować utf-8 na normalny sting gdzie jego długosc odpowiadalaby jego faktycznej dlugosci i normalnie mi pobieral znaki z stringa?
piotrekkr
No cóż sprawdziłem na necie przykładoy skrypt który liczy ilość znaków w stringu i wygląda na to że js dobrze liczy stringi utf-8. Zobacz sam: http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_length_string

Myślę że problem jest w pętli:
Kod
var buf0Str = "r1s1";
var buf1Str = "";
var z1,z2;
for (k=0; k < buf0Str.length; k++){
    if (buf0Str.charAt(k)!='s')
        buf1Str += buf0Str.charAt(k);
    else
         break;
                                
}
z1 = buf1Str;
buf1Str = "";
k++;
for (k; k < buf0Str.length; k++){
    buf1Str += buf0Str.charAt(k);
}
z2 = buf1Str;

Sproboj teraz. Nie dam głowy że zadziała ale przynajmniej będzie brał pod uwage pierwsze znaki stringa.
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.