Подготовка json для отправки POST

wizard

Client
Регистрация
04.10.2011
Сообщения
1 004
Благодарностей
632
Баллы
113
Добрый день
может кто подскажет код на C# или JS
для перекодировки русского текста в unicode

потому как отправляя JSON с русским текстом - сервер меня не понимает ) и очень ругается.
Заранее спасибо.
 

Severip

Client
Регистрация
17.10.2013
Сообщения
346
Благодарностей
98
Баллы
28
Код:
string text = project.Variables["Переменная_здесь"].Value;
return System.Web.HttpUtility.UrlEncode(text, System.Text.Encoding.GetEncoding("utf-8"));
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
не у всех он есть этот HttpUtility
лучше использовать Uri.EscapeUriString
 

wizard

Client
Регистрация
04.10.2011
Сообщения
1 004
Благодарностей
632
Баллы
113
надо чтоб русcкий текст был вида
\u0418\u043b\u044c\u044f

- не помогло (

Код:
string text = project.Variables["Переменная_здесь"].Value;
return System.Web.HttpUtility.UrlEncode(text, System.Text.Encoding.GetEncoding("utf-8"));
подскажите как подключить ?
 

wizard

Client
Регистрация
04.10.2011
Сообщения
1 004
Благодарностей
632
Баллы
113
блин, всю голову сломал -
имеем вот такой json
Код:
{"anketa":{"contactId":"492333333","nejm":"Илья","userId":"493333333","country":"Россия","gorod":"Москва","region":"Московская область"}}
в итоге нужно получить
Код:
{"anketa":{"contactId":"492333333","nejm":"\u0418\u043b\u044c\u044f","userId":"493333333","country":"\u0420\u043e\u0441\u0441\u0438\u044f","gorod":"\u041c\u043e\u0441\u043a\u0432\u0430","region":"\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c"}}
чтобы его отправить POST запросом через ZP
 

wizard

Client
Регистрация
04.10.2011
Сообщения
1 004
Благодарностей
632
Баллы
113
Код:
using System;
using System.Text;

class Program
{
    static void Main()
    {
        string st = "Привет, мир!";
        Console.WriteLine(foo(st));
    }
   
    static string foo(string input)
    {
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < input.Length; i += Char.IsSurrogatePair(input, i) ? 2 : 1)
        {
            int index = Char.ConvertToUtf32(input, i);
            sb.Append(@"\u" + index.ToString("x4"));
        }
       
        return sb.ToString();
    }
}
вот есть код на C# как его в ZP засунуть?
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
C#:
string value =  "проверочный текст";
StringBuilder sb = new StringBuilder();
foreach(char c in value){
    if( c > 127 ){
         string encodedValue = "\\u" + ((int) c).ToString("x4");
        sb.Append( encodedValue );
    }
    else sb.Append(c);
}
return sb.ToString();
не забудте потом весь боди прогнать через Uri.EscapeUriString
 
  • Спасибо
Реакции: nole, wizard и LmPopo

Err0r

Client
Регистрация
17.05.2015
Сообщения
157
Благодарностей
110
Баллы
43
в обратном направлении неподскажите как перегнать
 
Последнее редактирование:

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
Regex.Unescape("\u323\u2342...
 

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