Ich habe eine Zeichenfolge wie folgt:Wie erhält man die Byte-Länge eines Strings?
string a1 = "{`name`:`санкт_петербург`,`shortName`:`питер`,`hideByDefault`:false}";
a1. length
zeigt, dass die String-Länge ist, was nicht wahr ist: so groß sind doppelt Cyrillic Symbole (wegen der UTF-16-Codierung, nehme ich an), deshalb Die tatsächliche Länge dieser Zeichenfolge ist .
Ich muss entweder die Anzahl der kyrillischen Symbole in der Zeichenfolge erhalten oder die tatsächliche Länge der Zeichenfolge auf andere Weise erhalten.
* Alle *. NET-Zeichenfolgen sind UTF16. * Alle * Zeichen sind 2 Bytes lang. '.Length' gibt die Anzahl der Zeichen zurück, nicht die Anzahl der Bytes. Die Zeichenfolge hat 68 Zeichen und benötigt 136 Bytes –
Was ist 'Encoding.GetByteCount'? –
Auch bei "ASCII" -Zeichen bleiben Länge und Größe gleich. Für 'name' ist die Länge 4 und verwendet 8 Bytes. –