For current process

USER>f fmt="enuw","rusw","current","" do ##class(%SYS.NLS.Format).%New(fmt) w !,fmt,?10,$zd($h,11),?15,$zd($h,12)
 
enuw      Wed  Wednesday
rusw      Сре  Среда
current   St   středa
          Wed  Wednesday

Or for all new processes, without restart

%SYS>write $zd($h,12)
Wednesday
%SYS>Set ^SYS("NLS","Config","LocaleFormat")=1
 
%SYS>write $zd($h,12)
Wednesday
%SYS>Do Locale^NLSLOAD("rusw")
 
%SYS>write $zd($h,12)
Среда

After all details, it means, that no reasons to use $lb, or any other ways, it should be as is as a string, but with this length's header.

In Cache, we don't have binary strings as do other languages, but what is a byte, it is a symbol for text, so text will be arrays of bytes.

write $c(166, 70, 114, 105, 110, 103, 101)
¦Fringe

The only thing you should care as already mentioned above is different codepages. 

Let's try for some example:

And try to get the same.

USER>set data="TestТест"
 
USER>zzdump data
 
0000: 0054 0065 0073 0074 0422 0435 0441 0442                 TestТест

USER>set msg=$zcvt(data,"O","UTF8") ; convert from Unicode
 
USER>set msg=$c(160+$l(msg))_msg    ; of course should be changed for bigger text
 
USER>zzdump msg
 
0000: AC 54 65 73 74 D0 A2 D0 B5 D1 81 D1 82                  ¬TestТеÑ.Ñ.

and as you can see we got the same result