From 2003; it might be worth putting that in the title.
What he says is still very much valid. It's a nice intro into Unicode. Quite refreshing to read.
If it would overflow, you just set the long to the max size, byte the bullet and read the entire string. If you are using a dynamic language just throw whatever InfinitelyLargeNumber class it has in the size column and you're good.
If you're worried about ram that much you can just use plain strings when you need to.
Why not link to that in the first place?
You have to do that with all Unicode encodings, since a semantic symbol can be composed of multiple combining characters.