Ich verwende OSTranslate, um meine Mail-Body-Inhalt in Unicode-String zu konvertieren. Die für char arbeitet gut * weniger als Wortgrße 65535.OS_TRANSLATE_LMBCS_TO_UNICODE Problem
WORD Length = MAXWORD;
actualOutLength = OSTranslate(OS_TRANSLATE_LMBCS_TO_UNICODE, (char*)inPtr,
Length, (char*)outPtr, Length);
Nach der Konvertierung enthält das Ausgabe-Array nur einen Teil einer Quellzeichenfolge.
Bitte schlagen Sie vor, was die richtige Vorgehensweise ist, um die Größe festzulegen, da meine Eingabestringgröße die MAXWORD-Größenbeschränkung überschreitet.
Hey danke für die Lösung! Ich habe die zweite Lösung implementiert, indem ich Daten in MAXWORD/2 gelesen habe, aber einen Szenerio der Randbedingung in Betracht gezogen habe, wo ein chinesisches Zeichen 3 Bytes besetzt, von denen das erste Byte im ersten Block und die nächsten zwei Bytes im nächsten Block erscheinen das betrifft die Lösung? –
Ja, ich verstehe die Grenzbedingung, über die Sie sprechen. Deshalb habe ich vorgeschlagen, die Funktion NLS_get() zu verwenden, um die Zeichen zu scannen und zu zählen. Die NLS-Funktionen im Notes C API-Toolkit sind so aufgebaut, dass sie LMBCS-Zeichen korrekt verarbeiten. –
Ich habe einige Dinge durcheinander gebracht, ich werde wirklich apprecaite, wenn Sie mir einen Beispielcode zum Lesen von Daten mit NLS_get-Funktion geben können. –