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.