4 byte, in UTF-8.Originariamente inviato da andr3a
perchè 1 carattere massimo può essere lungo 3 bytes
Non sono quasi mai usati i simboli che occupano 4 caratteri, ma esistono, quindi se vuoi andare sul sicuro meglio prendere 4 come riferimento.
4 byte, in UTF-8.Originariamente inviato da andr3a
perchè 1 carattere massimo può essere lungo 3 bytes
Non sono quasi mai usati i simboli che occupano 4 caratteri, ma esistono, quindi se vuoi andare sul sicuro meglio prendere 4 come riferimento.
allora è sbagliata la funzione del tipo tedesco e anche quella di kenta ... perchè considera solo fino a 3Originariamente inviato da skidx
4 byte, in UTF-8.
[edit]
update effettuato con successo ... spero sia l' ultimo ... migliorata la velocità di conversione lunghezza, tolta la decode che non serviva a niente ... compatibile con utf8 e caratteri fino a 4 bytes
:master:Originariamente inviato da skidx
4 byte, in UTF-8.
Non sono quasi mai usati i simboli che occupano 4 caratteri, ma esistono, quindi se vuoi andare sul sicuro meglio prendere 4 come riferimento.
non era l' UTF-16 quello?![]()
e no eh ... non fatemi rimettere mano alla clase JSOriginariamente inviato da kentaromiura
:master:
non era l' UTF-16 quello?![]()
![]()
![]()
![]()
cmq, dal sito php
codice:Tabella 1. Codifica UTF-8 bytes bits rappresentazione 1 7 0bbbbbbb 2 11 110bbbbb 10bbbbbb 3 16 1110bbbb 10bbbbbb 10bbbbbb 4 21 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb![]()
NoOriginariamente inviato da kentaromiura
:master:
non era l' UTF-16 quello?![]()
UTF-16, guarda un po', rappresenta tutti i caratteri su 16 bit, due byte appunto
UTF-8 usa da 1 a 4 byte.
ho riletto ora le RFCOriginariamente inviato da skidx
No
UTF-16, guarda un po', rappresenta tutti i caratteri su 16 bit, due byte appunto
UTF-8 usa da 1 a 4 byte.![]()
comunque Andr3' tho!
i 2 commenti servono perche' non capisco perche' non mostri 4 col primo commento,codice:function truelen(s){ var c, d = 0; //s=String.fromCharCode(0x10ffff); //s=String.fromCharCode(0x10)+String.fromCharCode(0xffff); var l=s.length for (var i = 0; i < l; i++) { c=s.charCodeAt(i); if (c <= 0x7f) { d += 1 } else if (c >= 0x80 && c <= 0x7ff) { d+=2 } else if(c >= 0x800 && c <= 0xffff){ d+=3 } else if(c >= 0x10000 && c <= 0x10ffff) d+=4 } return d; }
ma poi con ultraedit in hex mode ho visto che stampava 2 caratteri e non 1 solo
..volendo nelle if non serve controllare il maggiore o uguale..
sono 2 giorni che ho scritto questa da me ...Originariamente inviato da kentaromiura
..volendo nelle if non serve controllare il maggiore o uguale..
cmq grazie del pensierocodice:function PHP_Serializer__Encoded_length(__s) { __s = __s.replace(/\r\n/g, '\n'); var a = b = c = 0; var len = __s.length; while(a < len) { c = __s.charCodeAt(a++); b += (c<128)?1: ((c<2048)?2: ((c<65536)?3:4)); } return b; }![]()
Scusa, FabioSe volete fare qualche prova trovate le classi Javascript che ho realizzato qui
http://digilander.libero.it/dustbin0/js2php.zip
Ma il tuo link non funziona. Hai un'altro link?
Grazie anticipatamente.
Natashenka
Ciao,
come ho scritto più su Digilander ha problemi, comunque utilizzate le classi di Andrea: la mia sulla deserializzazione è in fase di ristrutturazione e al momento non ho tempo di lavorarci.
Spero tra un paio di settimane di riprenderla in mano, ad ogni modo il problema dei caratteri multibyte al momento non pare sormontabile
per favore NIENTE PVT TECNICI da sconosciuti
Fabio, scusa la mia profonda ignotanza, ma mi sfugge il termine serìalizzare,.... cossa xèo?
grazie(forse posso proseguire nella lettura)
pierogemin
-------------
-InterNET
+CaberNET