Delphi’s NextGen compilers (Android, IOS) removed support for UTF8String, AnsiString and RawByteString. But if you look into System.pas you see that those types are still there but Embarcadero makes them inaccessible from outside of System.pas by prefixing them with an underscore that the compiler converts to the at-sign. And you can’t write “@UTF8String” as it is not a valid identifier.
By patching DCU files it is possible to make those hidden types accessible. And guess what, the compiler generates correct code for the “unsupported” strings.
The unit System.ByteStrings reintroduces:
ShortString
AnsiString
AnsiChar
PAnsiChar
PPAnsiChar
UTF8String
PUTF8String
RawByteString
PRawByteString
Usage:Add the System.ByteStrings.dcu’s path to the compiler’s search path and add the unit to your uses clauses.
There is no *.PAS file because the DCU is patched with a hex editor to get access to the hidden types.
Name
IDE Version
File
Size
Downloads
Added
System.ByteStrings
XE5 RTM/UP1 only
XE5ByteStrings.7z
2.45 KB
751 times
2013-10-23
System.ByteStrings
XE5 UP2 only
XE5Up2ByteStrings.7z
2.85 KB
667 times
2013-12-20
System.ByteStrings
XE6
XE6ByteStrings.7z
2.89 KB
541 times
2014-04-16
System.ByteStrings
XE7
XE7ByteStrings.7z
2.89 KB
526 times
2015-01-20
System.ByteStrings
XE8
XE8ByteStrings.7z
3.69 KB
523 times
2015-04-16
System.ByteStrings
10 Seattle
D10ByteStrings.7z
3.67 KB
3 times
2015-09-01