Сообщение от
NIMNUL
Евгений, я допилил Вашу идею преобразования Unicod в UTF8. Посмотрите, правильно ли?
Сначала, думал "склеивать" hex-коды в цикле, но потом нашёл решение через указатели.
VAR
// Конвертация Unicode -> UTF8
MyString: WSTRING;
abyUtf8: ARRAY [1..99] OF BYTE;
xConvert: BOOL;
ptrString : POINTER TO STRING(99);
outString : STRING;
END_VAR
PLC_PRG
IF xConvert THEN
STU.ConvertUTF16toUTF8(ADR(MyString), ADR(abyUtf8), SIZEOF(abyUtf8), FALSE);
ptrString := ADR(abyUtf8);
outString := ptrString^;
xConvert := FALSE;
END_IF
Чуть проще (и корректнее):
Код:
IF xConvert THEN
STU.ConvertUTF16toUTF8(ADR(MyString), ADR(outString), SIZEOF(outString), FALSE);
END_IF