I prefer to use string interning.
String interning has a very different set of tradeoffs and is often not what you need.
For things that I typically do interning provides little benefit, but SSO and substring sharing can help a lot.
Interning does have advantages:
Neat! I love how the integer endianness is exploited to be able to store a small string contiguously. I wonder, would swapping the order of prt and len be enough for this trick to also work on big endian architectures?