Well, UTF8String/ASCIIString are currently Julia's default string types, but I still have hopes that in the future, something based on Jacob Quinn's (@quinnj) String.jl, Stefan's bytevec, with traits based Encodings, would supplant the current set of ASCIIString/UTF8String/UTF16String/UTF32String currently used.
PCRE2 has support for 8, 16, and 32-bit codeunits, with run-time selection of UTF encoding (i.e. you could use ASCII, Latin1, or UTF-8 for 8-bit codeunits, or UCS2 or UTF-16 for 16-bit codeunits, instead of
always converting to UTF-8.
ICU is always UTF-16, and a lot of Unicode APIs use UTF-16, so I hope than anything that isn't currently optimized for UTF-16 (or UCS2) will be (if nobody else does, I'll definitely be adding more optimizations,
as I've done for simple conversions).