Martin Honnen wrote:
Quote:
Hat jemand eine Idee wie ich die Zeichen konvertieren/ zählen kann?
Dazu muesste man eine Zeichenkette per UTF-8-Kodierung in eine
Bytesequenz umwandeln und die Anzahl der Bytes in der Sequenz zaehlen. |
So ich bei schnellem Ueberfliegen des Unicodestandards und der dortigen
Erklaerung der UTF-8-Kodierung das jetzt richtig verstanden habe, laesst
sich die Laenge so bestimmen:
String.prototype.getUTF8ByteSequenceLength = function () {
var length = 0;
for (var i = 0; i < this.length; i++) {
var codePoint = this.charCodeAt(i);
if (codePoint <= 0x7F) {
length += 1;
}
else if (codePoint > 0x7F && codePoint < 0x800) {
length += 2;
}
else if (codePoint >= 0x800 && codePoint <= 0xFFFF) {
length += 3;
}
else if (codePoint > 0xFFFF) {
length += 4;
}
}
return length;
}
var s = 'a1ä€';
alert(s.getUTF8ByteSequenceLength()); // shows 7
--
Martin Honnen
http://JavaScript.FAQTs.com/