Updated. Thanks. Due to historical reasons most of the text handling functions come in three flavours: handling a nul-terminated ISO Latin 1 string, handling the same with a length to allow for nul characters and one with flags that specify the encoding and often type (atom/string/codes/chars), buffering and error handling. That reflects how text handling in Prolog evolved.
I guess new code should use the last family for most of the work. The others won’t be deleted, but it might be a good idea to move them to a dedicated section of the manual at some point.