The use case for strings is extremely narrow in Aiken and on-chain code, they are only used for tracing, a bit like labels attached to specific execution paths of your program. Most of the time, you probably want to use a ByteArray instead and only resort to String for debugging.

Creating strings

@"Hello world"

@"Hello
world"

Unicode

Under the hood text strings are UTF-8 encoded binaries and can contain any valid unicode.