VB.NET how to replace byte chrs that can't be displayed with "?"



I have a network packet that has some ascii text in it as well as some bytes that cant be displayed in the immediate window or console

what i need is a function that can take this byte string & replace any characters that can't be displayed with "?"

for example chr(0) doesn't show up as anything, there are also other characters that don't show up when written out to the console... as if they don't have a symbol/letter/number/etc associated with it

i guess the function needs to replace anything that doesn't have a chr/num/symbol associated with it
mcaincAsked:
Who is Participating?
 
Luis PérezConnect With a Mentor Software Architect in .NetCommented:
The Char type in .net has a shared method (function) called IsControl that maybe is the one you're looking for. This function returns true when a char (or a located character position in a string) is a control (or special) character. So you can transform a string replacing control characters with "?" symbol with the function attached.

Hope this will work for you. Good luck!
Private Function TransformString(ByVal Info As String) As String
    Dim sCopy As String = ""
 
    For Each cChar As Char In Info
        If Char.IsControl(cChar) Then
            sCopy += "?"
        Else
            sCopy += cChar
        End If
    Next
 
    Return sCopy
End Function

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.