Works with any encoding and arbitrary binary data. The last byte of the length field doesn't have the high bit set, and whatever follows after that is completely irrelevant.
But still needless complexity for this.
Sure it is, the length is out of band. In fact, you could even use utf-8 to encode the length!