Denna tråd kan nog passa: http://www.webforum.nu/showthread.php?s=&threadid=69940
Hello!
sitter och försöker att dekoda en sträng som har extraherats efter hämtning av mail från pop3-server.
strängen ser ut som så här i mailet:
S=E5 str=E4ck p=E5 dig
Men jag vill dekoda den så att den får sitt "rätta utseende":
Så sträck på dig
Försöker Dekoda så här, utan lyckat resultat:
Public Function DecodeBody(ByRef enc As System.Text.Encoding, ByRef sData As String) As String
Dim _ms As New MemoryStream(System.Text.Encoding.ASCII.GetBytes(sData))
Dim _b As Integer = _ms.ReadByte()
Dim _tmpMS As New MemoryStream()
While (_b > -1)
Dim _encChar As String = enc.GetString(New Byte() {CType(_b, Byte)})
Dim _d AS Byte() = System.Text.Encoding.Unicode.GetBytes(_encChar)
_tmpMS.Write(_d,0,_d.Length)
_b = _ms.ReadByte()
End While
Return System.Text.Encoding.Unicode.GetString(_tmpMS.ToArray())
End Function
Argumentet enc är av typen utf-7 eller utf-8
Men inte hjälper det inte .....
Hittade oxå lite i System.Globalization.NumberStyles.HexNumber och försökte med detta:
Public Function Decode(ByRef enc As System.Text.Encoding, ByRef sData As String) As String
Dim _ms As New MemoryStream(System.Text.Encoding.ASCII.GetBytes(sData))
Dim _b As Integer = _ms.ReadByte()
Dim _tmpMS As New MemoryStream()
While (_b > -1)
Dim _value As Integer = Int32.Parse(System.Text.Encoding.ASCII.GetString(_b),System.Globalization.NumberStyles.HexNumber);
Dim _encChar As String = enc.GetString(new byte(){CType(_value, Byte)})
Dim _d AS Byte() = System.Text.Encoding.Unicode.GetBytes(_encChar)
_tmpMS.Write(_d,0,_d.Length)
_b = _ms.ReadByte()
End While
Return System.Text.Encoding.Unicode.GetString(_tmpMS.ToArray())
End Function
Då får jag Invalid character .... har det med CrLf att göra? hur kan jag kolla om min variabel _b innehåller CrLf?
Någon som har förslag?
cya,
/PatrikB