Superator Опубликовано 14 сентября, 2018 Поделиться Опубликовано 14 сентября, 2018 Доброго времени суток. Добавляю информацию в ListView из JSON ответа файла php. В самом php файле стоит кодировка UTF8. В браузере кириллица из этого файла отображается нормально. Есть ли какая-то настройка кодировки в ListView? Цитата Ссылка на комментарий
0 WebPuper Опубликовано 14 сентября, 2018 Поделиться Опубликовано 14 сентября, 2018 > Добавляю информацию в ListView из JSON ответа файла php покажите метод Цитата Ссылка на комментарий
0 Superator Опубликовано 15 сентября, 2018 Автор Поделиться Опубликовано 15 сентября, 2018 (изменено) Считываю вот так, но дело в том, что в других 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; Изменено 15 сентября, 2018 пользователем Superator Цитата Ссылка на комментарий
0 x11 Опубликовано 15 сентября, 2018 Поделиться Опубликовано 15 сентября, 2018 В Delphi кодировка хоть и юнико, но не UTF-8, а UTF-32. Так что перекодируй сам. Юникод юникоду рознь. Цитата Ссылка на комментарий
0 Superator Опубликовано 15 сентября, 2018 Автор Поделиться Опубликовано 15 сентября, 2018 2 часа назад, x11 сказал: В Delphi кодировка хоть и юнико, но не UTF-8, а UTF-32. Так что перекодируй сам. Юникод юникоду рознь. А можно пример как перекодировать? Цитата Ссылка на комментарий
0 krapotkin Опубликовано 15 сентября, 2018 Поделиться Опубликовано 15 сентября, 2018 что вы путаете человека. если с сервера приходит в UTF-8, все работает замечательно без всяких переделок автор, можно URL, куда обратиться с http-запросом ? тут на слово не верят ))) Anatoliy 1 Цитата Ссылка на комментарий
0 Superator Опубликовано 16 сентября, 2018 Автор Поделиться Опубликовано 16 сентября, 2018 (изменено) 22 часа назад, krapotkin сказал: что вы путаете человека. если с сервера приходит в UTF-8, все работает замечательно без всяких переделок автор, можно URL, куда обратиться с http-запросом ? тут на слово не верят ))) Всем спасибо. Это все моя невнимательность. Ошибка крылась в синтаксисе php файла, а не в delphi. Не указал $mysqli->set_charset("utf8"). Изменено 16 сентября, 2018 пользователем Superator Anatoliy 1 Цитата Ссылка на комментарий
0 kami Опубликовано 17 сентября, 2018 Поделиться Опубликовано 17 сентября, 2018 В 15.09.2018 в 15:50, krapotkin сказал: если с сервера приходит в UTF-8, все работает замечательно без всяких переделок Даже более того - если с сервера приходит с указанием правильной кодировки (не обязательно UTF-8), то всё работает замечательно без всяких переделок. Ибо перекодирование автоматически производится во внутренностях http-клиента. krapotkin 1 Цитата Ссылка на комментарий
0 x11 Опубликовано 10 октября, 2018 Поделиться Опубликовано 10 октября, 2018 В 15.09.2018 в 14:57, Superator сказал: А можно пример как перекодировать? Ну так UTF32 дельфийский - это же String? Значит ищи что-то вроде UTF8ToStr и обратно. Цитата Ссылка на комментарий
Вопрос
Superator
Доброго времени суток. Добавляю информацию в ListView из JSON ответа файла php. В самом php файле стоит кодировка UTF8. В браузере кириллица из этого файла отображается нормально. Есть ли какая-то настройка кодировки в ListView?
Ссылка на комментарий
8 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.