Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2013, 16:04   #1
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию Русский текст из Json

Получаю с сайта Post запросом вот такую строку:
[{"number":"7953xxxxxxx","network":" 25020","price":"0.14","operator":"T ELE 2","countrycode":"RU","country":"RU SSIA","rusoperator":"\u0412\u043e\u 0442\u0435\u043a \u041c\u043e\u0431\u0430\u0439\u043 b","region":"\u0422\u0443\u043b\u04 4c\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u044 2\u044c"}]

Русский текст отображается как \u0412\u043e\u0442\u0435\u043a \u041c\u043e и т.д.

Какой функцией его перевести в нормальный русский вид?
vmilyoshin вне форума Ответить с цитированием
Старый 24.12.2013, 16:10   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Как-то так:
Код:
var
  J:ISuperObject;
begin
  J:=SO('<Твой JSON>');
  J['rusoperator'].AsString <-- Тут будет по-русски.
end;
Используется библиотека SuperObject. Гугл в помощь.
Человек_Борща вне форума Ответить с цитированием
Старый 24.12.2013, 16:36   #3
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Как-то так:
Код:
var
  J:ISuperObject;
begin
  J:=SO('<Твой JSON>');
  J['rusoperator'].AsString <-- Тут будет по-русски.
end;
Используется библиотека SuperObject. Гугл в помощь.
Где вы написали SO выдаёт ошибку. Это что такая за функция или процедура?
vmilyoshin вне форума Ответить с цитированием
Старый 24.12.2013, 16:41   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

вот что значит код давать.. кому нужны буквы?
eval вне форума Ответить с цитированием
Старый 24.12.2013, 16:52   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
Где вы написали SO выдаёт ошибку. Это что такая за функция или процедура?
Да нет, что ты! Я это от балды написал.

Цитата:
Используется библиотека SuperObject. Гугл в помощь.
Человек_Борща вне форума Ответить с цитированием
Старый 24.12.2013, 17:23   #6
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Да нет, что ты! Я это от балды написал.
Я скачал эту библиотеку. Ну там нет такой функции.
vmilyoshin вне форума Ответить с цитированием
Старый 24.12.2013, 17:47   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Все там есть.
Человек_Борща вне форума Ответить с цитированием
Старый 24.12.2013, 19:35   #8
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Не хрена он не переводит в русский текст.
Делаю так.
js:= tSuperObject.Create(AnsiString(LB)) ;
so(js.AsString);
showmessage(js.AsString);
Что было в переменной LB, то и выходит.
vmilyoshin вне форума Ответить с цитированием
Старый 24.12.2013, 23:39   #9
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Решил данную проблему написанием вот такой функции.
Как обычно никто толком не помог.

function parsing(sss:String): String;
var
p: String;
begin
p:= sss;
p:= StringReplace(p, '\u0401', 'Ё', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0419', 'Й', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0426', 'Ц', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0423', 'У', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u041A', 'К', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0415', 'Е', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u041D', 'Н', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0413', 'Г', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0428', 'Ш', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0429', 'Щ', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0417', 'З', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0425', 'Х', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u042A', 'Ъ', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0424', 'Ф', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u042B', 'Ы', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0412', 'В', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0410', 'А', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u041F', 'П', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0420', 'Р', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u041E', 'О', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u041B', 'Л', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0414', 'Д', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0416', 'Ж', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u042D', 'Э', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u042F', 'Я', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0427', 'Ч', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0421', 'С', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u041C', 'М', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0418', 'И', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0422', 'Т', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u042C', 'Ь', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0411', 'Б', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u042E', 'Ю', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0451', 'ё', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0439', 'й', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0446', 'ц', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0443', 'у', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u043A', 'к', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0435', 'е', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u043D', 'н', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0433', 'г', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0448', 'ш', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0449', 'щ', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0437', 'з', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0445', 'х', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u044A', 'ъ', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0444', 'ф', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u044B', 'ы', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0432', 'в', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0430', 'а', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u043F', 'п', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0440', 'р', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u043E', 'о', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u043B', 'л', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0434', 'д', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0436', 'ж', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u044D', 'э', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u044F', 'я', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0447', 'ч', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0441', 'с', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u043C', 'м', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0438', 'и', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0442', 'т', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u044C', 'ь', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u0431', 'б', [rfReplaceAll, rfIgnoreCase]);
p:= StringReplace(p, '\u044E', 'ю', [rfReplaceAll, rfIgnoreCase]);
Result:= p;
end;
vmilyoshin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
iddecoderxxe русский текст antoxamad Общие вопросы Delphi 0 14.03.2013 19:45
Json и русский язык GriFFoN PHP 2 30.04.2012 11:56
TIdMultiPartFormDataStream и русский текст foma9999 Работа с сетью в Delphi 7 17.08.2011 17:47
не вставляются русский текст Domanoff БД в Delphi 5 08.04.2010 11:53
TD не распознает русский текст Natalia-xxx- Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 05.03.2009 15:22