Chitranjan Pd Asthana Ответов: 1

Преобразование из HTML в unicode


У меня есть ввод типа "\u0026#2346;\u0026#2366;\u0026#2352;\u0026#2381;\u0026#2360;\u0026#2354;\u0026#2381; \u0026#2319;\u0026#2325;\u0026#2381;\u0026#2360;\u0026#2381;\u0026#2346;\u0026#2381;\u0026#2352;\u0026#2375;\u0026#2360;\u0026#2381;"
Как получить фактическую строку unicode из этого с помощью c# или vb.net

Что я уже пробовал:

использование system.text
Дим strtem как String=система.текст.в кодировке ASCII.метода getString()

1 Ответов

Рейтинг:
2

Richard Deeming

Это зависит от того, что именно находится в вашей строке.

Если вы вставите эту строку в программу на C#, она даст вам:

पार्सल् एक्स्प्रेस्
Если вы затем передадите это то System.Net.WebUtility.HtmlDecode функция[^], он вернется:
पार्सल् एक्स्प्रेस्
что Google переводит как:
Colis express
Однако если строка исходит из внешнего источника и содержит литерал \u0026 символы, то вам нужно будет сначала расшифровать их. Есть несколько примеров того, как это сделать в этом потоке SO:
в C# - как я могу конвертировать escape-последовательности Юникода символов Unicode .Чистая строка? - переполнение стека[^]

Например:
static string Decode(string input)
{
    string html = System.Text.RegularExpressions.Regex.Replace(input, @"\\u[0-9A-F]{4}", match => ((char)int.Parse(match.Value.Substring(2), System.Globalization.NumberStyles.HexNumber)).ToString(), RegexOptions.IgnoreCase);
    return System.Net.WebUtility.HtmlDecode(html);
}

...

string input = @"\u0026#2346;\u0026#2366;\u0026#2352;\u0026#2381;\u0026#2360;\u0026#2354;\u0026#2381; \u0026#2319;\u0026#2325;\u0026#2381;\u0026#2360;\u0026#2381;\u0026#2346;\u0026#2381;\u0026#2352;\u0026#2375;\u0026#2360;\u0026#2381;"
string output = Decode(input);


Sandeep Mewara

Я думаю, что это то, что ОП спросил. +5. Я удалю свой ответ, чтобы избежать путаницы.

Chitranjan Pd Asthana

Спасибо нашел точную строку