It's not the only way. For example, you could base64 encode each string, then use something that's not base64 as a field seperator, URLEncode each string and use an ampersand, or implement some method for escaping the seperator. Of course, you'd have to decode this after reading the data back in.
Of course, and many other ways you can ensure safe splitting or conversion of any kind from one field to an array of text. Hoever, it has at least three disadvantages:
Takes more data space
Takes time to compute the conversion
Doesn't take advantage of the underlying relational database