right6
22.03.2006, 21:36:19
jak mam jakiegos stringa postaci "@#$%", to kazdy znak zajmuje 1bajt

a razem beda zajmowac 4 bajty

czyli aby policzyc rozmiar stringa, trza przeliczyc ilosc znakow ?
Aztech
22.03.2006, 23:23:11
poczytaj o sizeof() oraz o lenght() i wykorzystaj razem
dr_bonzo
22.03.2006, 23:47:42
strlen() podaje ilosc bajtow (i tez ilosc znakow ASCII, takze dla kodowan 'polskich': iso i win1250)
mb_strlen() dlugosc stringa (dla znakow wielobajtowych: UTF'y, dla normalnych tez)
right6
24.03.2006, 17:41:00
no dobra, dlugosc stringa zwraca, ale nie rozmiar ...
mike
24.03.2006, 17:43:47
A co nie wiesz jak pomnożyć dwie liczby?
Skoro masz długość i znasz kodowanie to wystarczy pomnożyć ilość znaków przez ilość bajtów które zajmuje jeden znak w danym kodowaniu i gotowe.
P.S.
Zmień temat wątku, ten jest niepoprawny. Brakuje mu odpowiedniego prefiksu.
right6
24.03.2006, 18:41:15
no ale ...
to bym chcial zapisac do bazy.
Nieiwedziale mze to sie bedzie zmieniac zaleznie od kodowania.
chodzi mi tylko o znaki ~!@#$%^&*()_+{}|:"<>?
przeciez w bazie beda zawsze zapisane tak smo, wiec tyle samo beda zajmowac nie

(trza by mi znac ich wielkosc w bazie, a nie pow wyswietleniu.)
NuLL
24.03.2006, 19:07:06
To moze sprawdzisz sobie ile w danej stronie kodowej zajmuje dany znak ?
right6
25.03.2006, 19:10:24
http://club.pep.ne.jp/~hiroette/en/facemarks/index.htmli tam po prawej sa japonskie emotki, a pod nimi jest napisane ile tam zajmuja ...
no i wlasnie, chce tez wyswietlic jakis znak i pod nim taki podpis. Tylko skad wziasc rozmiar

przeciez kazdy to sobie moze w dowolnym kodowaniu wsywietlic ?
dr_bonzo
25.03.2006, 19:43:41
Co do tej strony z emotami:
sa tam podzielone na dwie kategorie
- 1 byte: czyli stworzone z uzyciem znakow ASCII (alfabet angielski, znaki ktore znajdziesz na std. klawiaturze QWERTY)
- 2 byte: czyli te z uzyciem 2 bajtowych znakow Unicode, bo tych ich 'krzakow' nie znajdziesz na klawiaturze (takiej jak nasze)
Mozesz to zrobic za pomoca mb_strlen() -- kodowania dziela sie na Unikodowe (UTF=y) i pozostale (iso-****, cp ***...). Te pierwsze sa wielobatowe (1-4B) a te drugie tylko 1B -- mb_strlen() to rozpozna.
right6
26.03.2006, 09:51:50
no i wlasnie o to mi chodzi o te kombinacje znakow z naszych klawiatur.
no ale znowu mb_strlen() nie zwraca mi rozmiaru ... tylko z tego co wyczytalem dl. jak wiec przemnozyc ta dlugosc ?
dr_bonzo
26.03.2006, 10:24:14
Sorry -- pomylka -- dlugosc bajtowa policzysz zwyklym str_len'em().
chociaz mb_strlenem tez (po zastosowaniu malego tricka)
http://pl.php.net/manual/en/function.mb-strlen.php :
Cytat
If you wish to find the byte length of a multi-byte string when you are using mbstring.func_overload 2 and UTF-8 strings, then you can use the following:
mb_strlen($utf8_string, 'latin1');
right6
26.03.2006, 14:28:15
czyli to co mi zwroci zwykly str_len() to bedzie szukana przezemnie dl. w bajtach ?
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.