Regex.Escape

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 417
Благодарностей
5 454
Баллы
113
Есть метод
Код:
return Regex.Unescape(project.Variables["name_ru"].Value);
он строку вида
Код:
\u043b\u0438\u043d\u0449\u0435\
Переводит в читаемый русский текст.

Вопрос как сделать обратный процесс. Метод Regex.Escape ничего не меняет, т.е. текст остается таким же.
 
  • Спасибо
Реакции: redman

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
Код:
string s = @"\u043b\u0438\u043d\u0449\u0435\";
s = Regex.Replace(s, @"\\u([0-9A-Fa-f]{4})", m => ""+(char)Convert.ToInt32(m.Groups[1].Value, 16));
return s.ToLower();
 
  • Спасибо
Реакции: Mikhail B.

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 417
Благодарностей
5 454
Баллы
113
Код:
string s = @"\u043b\u0438\u043d\u0449\u0435\";
s = Regex.Replace(s, @"\\u([0-9A-Fa-f]{4})", m => ""+(char)Convert.ToInt32(m.Groups[1].Value, 16));
return s.ToLower();
Это тоже самое, я говорю мне надо русский текст перевести, закодировать в это \u043b\u0438\u043d\u0449\u0435\
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 417
Благодарностей
5 454
Баллы
113
Спасибо advert_mind с чата, за помощь.
Код:
string str = project.Variables["text"].Value;
StringBuilder sb = new StringBuilder();
if (!string.IsNullOrEmpty(str))
{
    for (int i = 0; i < str.Length; i++)
    {
        sb.Append("\\u"); // или \\u0
        sb.Append(((int)str[i]).ToString("x"));
    }
    return sb;
}
 
  • Спасибо
Реакции: Dorian_Gray и Blazelip

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)