Перейти к содержанию
  • Регистрация
  • 0
Superator

Кириллица в ListView выводится в виде вопросительных знаков

Вопрос

Доброго времени суток. Добавляю информацию в ListView из JSON ответа файла php. В самом php файле стоит кодировка UTF8. В браузере кириллица из этого файла отображается нормально. Есть ли какая-то настройка кодировки в ListView?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0

Считываю вот так, но дело в том, что в других ListView все отображается нормально.

S := TStringList.Create;
  try
    S.Text := profile_IdHTTP.get(profile_url + '?user_id=' + loged_id );
     //пробуем распарсить
    FJSONObject := TJSONObject.ParseJSONValue(S.text) as TJSONObject;
    if Assigned(FJSONObject) then //парсинг прошел успешно - считываем названия пар EnumPairs

    else //парсинг провалился - выводим сообщение
      raise Exception.Create('Файл не содержит JSON-данные');
    JsonArray := FJSONObject.Get('user_ads').JsonValue as TJSONArray;

 //Запускаем цикл
    for i := 0 to JsonArray.Size - 1 do
    begin

//Присваиваем переменным значения
      user_id := (JsonArray.Get(i) as TJSONObject).Get('user_id').JsonValue.Value;
      title := (JsonArray.Get(i) as TJSONObject).Get('title').JsonValue.Value;
//Добавляем в ListView

    with profile_ListView.Items.Add do
    begin
      Data['Text1'] := title;
      Data['Text3'] := '?user_id=' + user_id;
    end;

    end;

  finally
      S.Free;
  end;

Изменено пользователем Superator

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

В Delphi кодировка хоть и юнико, но не UTF-8, а UTF-32. Так что перекодируй сам.

Юникод юникоду рознь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
2 часа назад, x11 сказал:

В Delphi кодировка хоть и юнико, но не UTF-8, а UTF-32. Так что перекодируй сам.

Юникод юникоду рознь.

А можно пример как перекодировать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

что вы путаете человека. если с сервера приходит в UTF-8, все работает замечательно без всяких переделок

автор, можно URL, куда обратиться с http-запросом ?

тут на слово не верят )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

 

22 часа назад, krapotkin сказал:

что вы путаете человека. если с сервера приходит в UTF-8, все работает замечательно без всяких переделок

автор, можно URL, куда обратиться с http-запросом ?

тут на слово не верят )))

Всем спасибо. Это все моя невнимательность. Ошибка крылась в синтаксисе php файла, а не в delphi. Не указал $mysqli->set_charset("utf8").

Изменено пользователем Superator

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 15.09.2018 в 15:50, krapotkin сказал:

если с сервера приходит в UTF-8, все работает замечательно без всяких переделок

Даже более того - если с сервера приходит с указанием правильной кодировки (не обязательно UTF-8), то всё работает замечательно без всяких переделок. Ибо перекодирование автоматически производится во внутренностях http-клиента.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 15.09.2018 в 14:57, Superator сказал:

А можно пример как перекодировать?

 

Ну так UTF32 дельфийский - это же String? Значит ищи что-то вроде UTF8ToStr и обратно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...