Собственно нужно то что в memo1 перевести в Utf8. Я выполняю post запрос на сервер (код ниже) и я получаю информацию но там какие то кракозябры. Побывал Utf8ToAnsi не помогает =(
procedure TForm1.Button3Click(Sender: TObject);
var
p,i:Tstrings;
name:string;
begin
id[Ссылки могут видеть только зарегистрированные и активированные пользователи] 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13)';
id[Ссылки могут видеть только зарегистрированные и активированные пользователи]'application/x-[Ссылки могут видеть только зарегистрированные и активированные пользователи]';
p:=Tstringlist.Create;
i:=Tstringlist.Create;
try
i.Add('method=getInfo');
i.Add('key=******************');
i.Add('user=********');
i.Text:=Id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]', i);
memo1.Lines.Add(i.Text);
name := parse('<name>', '</name>', Memo1.Text);
Label19.Caption:=name; <<---вот это надо в UFT8
finally
p.Free;
memo1.Clear;
end;
end;
blad56
13.07.2011, 18:25
UTF8Decode(Label19.Caption:=name). Как-то так:)
Mebius
13.07.2011, 18:40
UTF8Decode(Label19.Caption:=name). Как-то так:)
Нет, не так!
Label19.Caption:=UTF8Decode(name);
Fliva59, твой код покажет не крякозябры, а пустой мемо.
параметры Request лучше задавать не в коде, а в компоненте.
а если нужен только лейбл изменить, то мемо вообще не нужен.
стринглиста вполне достаточно.
Fliva59
13.07.2011, 19:00
Label19.Caption:=UTF8Decode(name); не помогает! Я уж что только не перепробывал! Мой код в мемо показывает:
</playerTalents>
<playerTalentPoints>40</playerTalentPoints>
<playerBuffs>
<!-- no data in 'playerBuffs' -->
</playerBuffs>
<server_ts>1310569121</server_ts>
</data>
Мне тут конкретно нужно из utf-8 в windows-1251. Но функций в интернете нету =(
VeTaL_UA
13.07.2011, 23:00
Utf8ToAnsi() должно помочь...
Fliva59
13.07.2011, 23:38
Я это пробовал, нет =(
Mebius
14.07.2011, 19:31
дык ты нам мозг тут компоссируешь, это вообще не утф8! это слово, закодированное вариантом URLEncode. стандартных ф-ций раскодировки я не знаю тк не приходило в голову их использовать. знаю пакет synapse, имхо лучший в своем роде.
берем оттуда synacode в юзес. потом пишешь Label19.Caption:=synacode.DecodeURL(name);
Synapse: оф сайт ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
для тех, кто пошлет меня далеко и на долго с тем, что это не утф8.
он парсит name:
<name>%D0%91%D1%80%D0%B8%D1%82%D0%B2%D0%B0</name>
идем сюда ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) и вставляем то, что спарсилось: %D0%91%D1%80%D0%B8%D1%82%D0%B2%D0%B0
тыкаем на декоде и видим: Бритва
Fliva59
14.07.2011, 21:47
На офф сайп провайдер не пускает =( можешь на форум скинуть свежую версию для 2010 среды
Mebius
14.07.2011, 23:39
На офф сайп провайдер не пускает =( можешь на форум скинуть свежую версию для 2010 среды
лови
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
VeTaL_UA
14.07.2011, 23:43
Fliva59, Скачать synapse ([Ссылки могут видеть только зарегистрированные и активированные пользователи]), Установка ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
Fliva59
15.07.2011, 10:27
Label19.Caption:=synacode.DecodeURL(name);
И получается вот это
Бритва
Mebius
15.07.2011, 11:11
Label19.Caption:=synacode.DecodeURL(name);
И получается вот это
Бритва
а вот это уже UTF8. тут UTFDecode)
VeTaL_UA
15.07.2011, 11:28
Полный код такой:
var
s:string
begin
s:=synacode.DecodeURL(name);
Label19.Caption:=UTF8Decode(s);
end;
//Блин, опять опередил...
Mebius
15.07.2011, 12:03
Полный код такой:
var
s:string
begin
s:=synacode.DecodeURL(name);
Label19.Caption:=UTF8Decode(s);
end;
//Блин, опять опередил...
зачем так сложно????
лишнюю переменную объявлять не надо.
begin
Label19.Caption:=UTF8Decode(synacode.DecodeURL(nam e));
end;