Byte eines Strings berechnen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Byte eines Strings berechnen

    Liebes Forum,

    in der Kommunikation mit einer Schnittstelle habe ich ein Größen-Limit von einem MB, dass ich pro Request nicht überschreiten darf. Ich möchte natürlich nicht unnötig große Requests an die API schicken und lieber vorab ermitteln, wie groß der von mir übertragene String ist. Kann mir jemand verraten, wie ich einen String daher in byte/kilobyte umrechnen kann?

    Lieben Dank und Grüße
    Martin
  • Das hängt vom verwendeten Zeichensatz ab. MacRoman und die ISO-8859-Zeichensätze verwenden pro Zeichen ein Byte; also Länge gleich Anzahl der Bytes. Bei UTF-8 und UTF-16 hängt die Bytelänge eines Zeichens von dessen Unicodewert ab.

    Am saubersten für alle Zeichensätze ist es, die Zeichenkette in ein NSData-Objekt umzuwandeln und dessen Länge zu verwenden. Die Umwandlung musst du bei der Übertragung ja sowieso machen.
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:


    Am saubersten für alle Zeichensätze ist es, die Zeichenkette in ein NSData-Objekt umzuwandeln und dessen Länge zu verwenden. Die Umwandlung musst du bei der Übertragung ja sowieso machen.
    nö, denn dann könnte es vorkommen dass du nur die halben daten für ein zeichen überträgst und das wird der API nicht gefallen.

    es gibt doch genau die richtige methode für die aufgabe:

    Quellcode

    1. - (BOOL)getBytes:(void *)buffer
    2. maxLength:(NSUInteger)maxBufferCount
    3. usedLength:(NSUInteger *)usedBufferCount
    4. encoding:(NSStringEncoding)encoding
    5. options:(NSStringEncodingConversionOptions)options
    6. range:(NSRange)range
    7. remainingRange:(NSRangePointer)leftover