Module CheckAnsi { \\ ANSI STRING Locale 1033 \\ convert UTF16-LE to ANSI 8bit s$ =Str$("ABCDEFG") Print Len(s$)=3.5 ' 3.5 words, means 7 bytes (3.5*2) AnsiLen=Len(s$)*2 ' From 4th byte get 3 bytes n=4 m=3 substring$=Mid$(s$, n, m as byte) substring2End$=Mid$(s$, n , AnsiLen as byte) substringMinusOne$=Left$(s$, AnsiLen-1 as byte) substringFromKnownCharacter$=Mid$(s$, Instr(s$, str$("B") as byte) , m as byte) substringFromKnownSubstring$=Mid$(s$, Instr(s$, str$("BC") as byte) , m as byte) Print Len(substring$)*2=m \\ convert to UTF-16LE Print Chr$(substring$)="DEF" Print Chr$(substring2End$)="DEFG" Print Chr$(substringMinusOne$)="ABCDEF" Print Chr$(substringFromKnownCharacter$)="BCD" Print Chr$(substringFromKnownSubstring$)="BCD" } CheckAnsi Module CheckUTF16LE { s$ ="ABCDEFG" Print Len(s$)=7 Utf16Len=Len(s$) ' From 4th byte get 3 bytes n=4 m=3 substring$=Mid$(s$, n, m) substring2End$=Mid$(s$, n , Utf16Len) substringMinusOne$=Left$(s$, Utf16Len-1) substringFromKnownCharacter$=Mid$(s$, Instr(s$, "B") , m) substringFromKnownSubstring$=Mid$(s$, Instr(s$, "BC") , m) Print Len(substring$)=m \\ convert to UTF-16LE Print substring$="DEF" Print substring2End$="DEFG" Print substringMinusOne$="ABCDEF" Print substringFromKnownCharacter$="BCD" Print substringFromKnownSubstring$="BCD" } CheckUTF16LE