GD Star Rating
loading...
loading...
Есть кто-нибудь, общающийся с Visual Basic’ом?
Надо написать перекодировщик из Quoted-printable строки в удобочитаемый вид.
Инсайд – наработанное.
Есть кто-нибудь, общающийся с Visual Basic’ом?
Надо написать перекодировщик из Quoted-printable строки в удобочитаемый вид.
Инсайд – наработанное.
Сейчас есть такая функция (взята с форума MSDN).
Imports Microsoft.VisualBasic
Imports System
Imports System.Text
Imports System.Text.RegularExpressions
Public Shared Function DecodeQuotedPrintableString(ByVal encodedString As String) As String
Dim b As New StringBuilder()
Dim startIndx As Integer = 0
Dim QuotedPrintableRegex As New Regex(“:? < hexchars > [0-9a-fA-F]{2,2})”, RegexOptions.IgnoreCase Or RegexOptions.Compiled)
Dim matches As MatchCollection = QuotedPrintableRegex.Matches(encodedStri ng)
For i As Integer = 0 To matches.Count – 1
Dim m As Match = matches(i)
Dim hexchars As String = m.Groups(“hexchars”).Value
Dim charcode As Integer = Convert.ToInt32(hexchars, 16)
Dim c As Char = ChrW(charcode)
If m.Index > 0 Then
b.Append(encodedString.Substring(startIn dx, (m.Index – startIndx)))
End If
b.Append©
startIndx = m.Index + 3
Next
If startIndx < encodedString.Length Then
b.Append(encodedString.Substring(startIn dx))
End If
Return Regex.Replace(b.ToString(), “=” & vbCr & vbLf, “”)
End Function
На вход подается строка типа “=?UTF-8?Q?=D0=A1=D1=82=D0=B0=D1=80=D1=82=20=D1 =80=D0=B0=D1=81=D0=BF=D1=80=D0=BE=D0=B4= D0=B0=D0=B6=” (здесь кусок строки, начинающейся с ‘Старт распродаж’ без кавычек). На выходе – полный бред в ISO-8859-1, а хотелось бы – в UTF-8.
Знаю, что UTF-8 записывается двумя hex-символами, но как всё это правильно сделать – никак не могу понять.
Пожалуйста, направьте в правильную сторону.
Visual Basic 2010.
в 😕 < hexchars > пробелы специально для парсера
1. Есть gist.github.com и pastebin.com и т.д.http://stackoverflow.com/a/8307660/55209… ; (из C# в VB сам переведешь?)
2.