Vorweg: Ich kenne das
DEC nicht wirklich (man hat ja nie genug Zeit, eigentlich wollte ich es mir schon lange genauer ansehen...).
Was
Unicode angeht: Dafür gibt es doch das entsprechende Compiler Define, anhand dessen man das Vorgehen unterscheiden kann. Heißt: Gibt es dieses define, dann ist ein String ein UnicodeString, andernfalls ein AnsiString. Lässt sich das nicht auch in deinem Fall so umsetzen?
Bei mir sieht das z.B. so aus:
Delphi-Quellcode:
{$ifdef UNICODE}
Result := Utf8ToString(ResultString);
{$else}
Result := Utf8Decode(ResultString);
{$endif}