Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Quoted Printable Encoding utf-8 / 3 сообщений из 3, страница 1 из 1
15.07.2013, 14:32
    #38331417
Che0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Quoted Printable Encoding utf-8
Помогите!
Не могу никак перекодировать. Перепробовал уже сто готовых функций с гугла. Или выдает краказябры, или просто оставляет исходный текст. линк на файл
...
Рейтинг: 0 / 0
15.07.2013, 15:08
    #38331476
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Quoted Printable Encoding utf-8
Che0,

.. вот такая у меня функция раскодирует (если в браузере)

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Public Function DecodeQpUTF8(mBody As String, mContentType As String) As String
        mBody = mBody.Replace("=" & vbCrLf, String.Empty)
        Dim tempString As String = String.Empty
        For index As Integer = 0 To mBody.Length - 1
            If mBody.Chars(index) = "=" Then
                Dim strFirstByte As String = String.Empty
                For n As Integer = 1 To 2
                    strFirstByte += mBody.Chars(index + n)
                Next
                If Convert.ToInt32(strFirstByte, 16) >= Convert.ToInt32("C3", 16) Then
                    Dim b(2) As [Byte]
                    Dim strSecondByte As String = String.Empty
                    b(0) = Convert.ToByte(strFirstByte, 16)
                    For n As Integer = 1 To 2
                        strSecondByte += mBody.Chars(index + 3 + n)
                    Next
                    b(1) = Convert.ToByte(strSecondByte, 16)
                    Dim strUbyte As String = System.Text.Encoding.UTF8.GetString(b)
                    tempString += strUbyte
                    index += 5
                Else
                    tempString += Convert.ToChar(Convert.ToInt32(strFirstByte, 16))
                    index += 2
                End If
            Else
                tempString += mBody.Chars(index)
            End If
        Next
        If mContentType.ToLower.Contains("text/plain") Then
            tempString = tempString.Replace(vbCrLf, "
")
        End If
        Return tempString.Replace(ChrW(194), String.Empty)
    End Function
...
Рейтинг: 0 / 0
15.07.2013, 15:22
    #38331504
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Quoted Printable Encoding utf-8
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
        /// <summary>
        /// Преобразует строку в массив целочисленных беззнаковых интов, используя quoted-ptintable
        /// </summary>
        /// <param name="text">Строка(текст) для преобразования</param>
        /// <returns>Целочисленный массив (безнаковый)</returns>
        public static byte[] FromQuotedPrintableEncoding(string text)
        {
            // убираем незначащие переносы
            text = text.Replace("=\r\n", "");

            using (var stream = new MemoryStream(text.Length))
            {
                int currentPos = 0;
                while (true)
                {
                    if (currentPos >= text.Length)
                        break;

                    var _char = text[currentPos];
                    switch (_char)
                    {
                        case '=':
                            stream.WriteByte(Convert.ToByte(text.Substring(currentPos + 1, 2), 16));
                            currentPos += 3;
                            break;
                        default:
                            stream.WriteByte(Convert.ToByte(_char));
                            currentPos += 1;
                            break;
                    }
                }

                return stream.ToArray();
            }
        }
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Quoted Printable Encoding utf-8 / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]