---
title: "Dekoda body delen i mail?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/81616-dekoda-body-delen-i-mail"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "PatrikB"
published: "2003-07-08T15:15:51.000Z"
updated: "2003-07-08T21:28:06.000Z"
replies: 4
views: 259
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/81616-dekoda-body-delen-i-mail"
---

# Dekoda body delen i mail?

## #1 — PatrikB, 2003-07-08T15:15Z

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

Permalänk: https://www.webforum.nu/p/81616

## #2 — renholm, 2003-07-08T15:28Z

Denna tråd kan nog passa: <http://www.webforum.nu/showthread.php?s=&threadid=69940>

Permalänk: https://www.webforum.nu/p/1106154

## #3 — PatrikB, 2003-07-08T20:28Z

tackar renholm.
Fortsatte i tråden du tipsade om med en lösning för VB.NET

... eller, din lösning konverterad till VB.NET ... :e

cya,
/PatrikB

Permalänk: https://www.webforum.nu/p/1106351

## #4 — niko, 2003-07-08T21:17Z

> **PatrikB skrev:**
>
> eller, din lösning konverterad till VB.NET

Om vi ska vara lite petiga så är faktiskt *ASCIIHexToChar* min kollegas egenhändigt skrivna gamla VB4-kod från \~98 som har fått ett helt nytt .NET-liv tack vare Nickemannen. (Fast du har korrigerat hans originalstavfel som bara hade *ett* "i".) ;) 

[Källa](http://www.webforum.nu/showthread.php?s=&postid=586277#post586277)

Permalänk: https://www.webforum.nu/p/1106378

## #5 — PatrikB, 2003-07-08T21:28Z

Där ser man .... vad är det man säger:
Återanvändning!

cya,
/PatrikB

Permalänk: https://www.webforum.nu/p/1106387

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/81616-dekoda-body-delen-i-mail
