It's one of the few undocumented identifiers-- looking at
versions.txt usually helps in those situations, but it basically encodes the non-unicode text as utf-8
In the case of encoding $chr(160) as utf-8, I believe it turns into the byte string: $chr(192) $+ $chr(160)
48. ...snip...
Added $utfencode(text, C) and $utfdecode(text, C), where C is the
script/codepage ($window().fontcs) of the plain text.
Added $isutf(text) identifier, returns UTF-8 status of text, where
0 = not UTF-8 (contains invalid UTF-8 sequences), 1 = seems to be
plain text, 2 = seems to contain valid UTF-8.
Note the non-unicode way to do spaces is similar to yours, but I use:
space { return $str($+($chr(22),$chr(32),$chr(22)),$$1) }
$chr(22) is the reverse control code-- as long as you have an even number of them, it should not affect control codes on the rest of the line like ctrl+k would.