I'm opposed to having string(8) for much the same reason I was opposed to string_width(): It invites abuse. Suddenly someone thinks "Ok, here I need an 8-bit string for this API, let's check if the input is 8-bit and call string_to_utf8() if not!" and you get a really weird function which arbitrarily will encode text as either iso-8859-1 or UTF-8. (Example taken from reality, but no need to mention names.)