Thought I would share just in case anyone else needs to output characters to a web browser.
[code]Function encodeToHTML(cellText as String) As string
dim result as string = “”
dim charsOk as string = chr(34) + " .!$#@±/\|~’;:[]{}=_()*`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
dim currentChar as string = “”
for lp as integer = 1 to len(cellText)
currentChar = Mid(cellText, lp, 1)
if InStr(charsOk, currentChar) > 0 then
result = result + currentChar
else
result = result + "&#" + cstr(Asc(currentChar)) + ";"
end if
next
return result
End Function[/code]
For a long string, this would be slow. If I may, use arrays instead.
(FYI, retrieving Len on a long string, especially one that has a lot of Unicode in it takes a surprisingly long time so you don’t want to call it repeatedly in a loop. LenB doesn’t suffer from that problem, but is also not appropriate in most cases.)
Function encodeToHTML(cellText As String) As String
dim result() as string
static charsOk as string = _
chr(34) + _
" .!$#@+-/\\|~';:[]{}=_()*`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
dim currentChar as string = ""
cellText = cellText.ConvertEncoding( Encodings.UTF8 )
dim chars() as string = cellText.Split( "" )
redim result( chars.Ubound )
for lp as integer = 0 to chars.Ubound
currentChar = chars( lp )
if InStr(charsOk, currentChar) <> 0 then
result( lp ) = currentChar
else
result( lp ) = "&#" + cstr(Asc(currentChar)) + ";"
end if
next
return join( result, "" )
End Function
Thank you so much for taking the time to show me a better way of doing it. The feedback is really helpful and a totally different approach which I wouldnt have done and I can see how I can use the way you have done this with other things I do. I didnt know that about the Len and LenB. That has been really helpful.
The next step is to get really fancy and replace things like “&” with “&”. 
if you need speed: EncodingToHTMLMBS function.
Well, naturally. 
Why “Encoding
” and not “Encode
”?
Either way it is much quicker than what I did, especially with very large text blocks, thanks everyone.
[quote=96510:@Christian Schmitz]bad english.
and difficult to change.[/quote]
Not that it’s really important, but couldn’t you deprecate the current methods and add the “correctly” named ones?
I know this will sound stupid but I did look in the list to see if Xojo etc had a function built in and I use your MBS suite but didnt see your function because I was looking for Encode and not Encoding so skipped past it so others may do the same so I would give +1 to the idea of it becoming EncodeToHTMLMBS.