Форум: "Начинающим";
Текущий архив: 2017.07.30;
Скачать: [xml.tar.bz2];
ВнизКроказябры в Post-Запросе. Найти похожие ветки
← →
Иван Д. (2015-09-07 08:56) [0]Есть база данных MySQL в которой хранятся, в частности, русскоязычные записи, кодировка - cp1251_general_ci. Есть php-скрипт, через который Delphi-программа считывает данные с БД. Сама Delphi-программа делает запрос так:
Var Str:TStringList;
Url:String;
S:String;
S:= IdHTTP1.Post(Url,Str);
Memo1.Lines.Add(S);
На Delphi7 все работало нормально, в Memo1 выводились русские буквы. На Delphi XE5 вместо русских букв видны кроказябры. Что нужно изменить в коде Delphi XE5, чтобы решить проблему?
Заранее спасибо!
← →
sniknik © (2015-09-07 09:47) [1]для начала AnsiString везде поставь (раз на D7 работала то логично, что там не юникод)
← →
Иван Д. (2015-09-07 09:53) [2]
Var Str:TStringList;
Url:AnsiString;
S:AnsiString;
S:= IdHTTP1.Post(Url,Str);
Memo1.Lines.Add(S);
Результат не изменился.
← →
кгшзх © (2015-09-07 10:08) [3]смотри в какой кодировке приходят данные из похапе
← →
кгшзх © (2015-09-07 10:23) [4]а потом смотри на изменившийся пост
function Post(AURL: string; const ASourceFile: String
{$IFDEF STRING_IS_ANSI}; ADestEncoding: IIdTextEncoding = nil{$ENDIF}
): string; overload;
← →
Иван Д. (2015-09-07 10:26) [5]Спасибо, попробую разобраться!
← →
Иван Д. (2015-09-07 17:48) [6]Данные приходят либо 1) в формате UTF8, либо 2) Ansi. Не подскажете более подробно, какой нужен код как для 1-го так и для 2-го случая?
← →
sniknik © (2015-09-07 18:40) [7]IdHTTP1.Request.AcceptCharSet := "windows-1251";
раз сервер имеет выбор, то просто указать нужное, и не париться.
← →
Иван Д. (2015-09-07 18:56) [8]Сервер не имеет выбор, просто я точно не знаю, какой из двух вариантов правильный, не имею доступа к php-скрипту. Ни один из двух нижеуказанных вариантов не помог:
Var Str:TStringList;
Url:AnsiString;
S:AnsiString;
IdHTTP1.Request.AcceptCharSet:="windows-1251";
S:= IdHTTP1.Post(Url,Str);
Form1.Caption:=S;
Var Str:TStringList;
Url:AnsiString;
S:AnsiString;
IdHTTP1.Request.AcceptCharSet:="utf-8";
S:= IdHTTP1.Post(Url,Str);
Form1.Caption:=S;
← →
sniknik © (2015-09-08 01:51) [9]> просто я точно не знаю, какой из двух вариантов правильный
ну так выясни... получи в одной, читается? получи в другой, а так? правильный будет тот в котором получишь осмысленный текст. © кэп.
← →
Иван Д. (2015-09-08 11:07) [10]>Ни один из двух нижеуказанных вариантов не помог.
Вы о чем?
← →
Иван Д. (2015-09-08 11:09) [11]Кстати, кодировка, возвращаемого текста php-скриптом windows-1251.
← →
кгшзх © (2015-09-08 12:39) [12]молодец.
осталось сказать про это своему идшттп
← →
Иван Д. (2015-09-08 16:51) [13]Как?
← →
кгшзх © (2015-09-08 17:03) [14]внутри [4] сказано как.
← →
Иван Д. (2015-09-08 19:32) [15][4] для меня непонятно. Прошу привести более подробный пример кода, если можно.
← →
кгшзх © (2015-09-08 20:52) [16]sStream := TStringStream.Create;
IdHTTP1.Post(Url,Str,sStream);
ShowMessage(sStream.DataString);
← →
Иван Д. (2015-09-09 19:27) [17]кгшзх, огромное спасибо! Всё заработало!
← →
Иван Д. (2015-09-11 21:09) [18]Еще одна проблемка: когда ведется запись в базу данных, как сделать, чтобы Str.Text было бы что ли AnsiString, а не String, так как нижеуказанный код пишет в базу кроказябры:
Var Str:TStringList;
Str:=TStringList.Create();
Str.Text:="здесь есть русские буквы";
sStream := TStringStream.Create;
IdHTTP1.Post(Url,Str,sStream);
← →
кгшзх © (2015-09-11 21:37) [19]щас тебя спросят в какой кодировке приходят данные в пхп.
какой чарсет используется при подключении к базе из похапе....
на что ты скажешь, что не знаю, не имею доступа, мне не говорили.....
ну и смысл спрашивать было?
← →
Иван Д. (2015-09-11 21:46) [20]В базе данных кодировка cp1251_general_ci
Единственная строка в php, отвечающая за кодировку - mysql_query("SET NAMES cp1251");
← →
кгшзх © (2015-09-11 22:04) [21]какая кодировка в базе - вообще по барабану.
про нее вообще не спрашивалось
← →
Иван Д. (2015-09-12 05:20) [22]Ответ нашелся здесь: http://www.foxbase.ru/delphi/indy-tidhttppost-i-russkie-simvoly-v-parametrakh-zaprosa.htm
← →
имя (2015-10-20 18:42) [23]Удалено модератором
← →
имя (2015-10-20 19:12) [24]Удалено модератором
← →
имя (2015-10-20 19:15) [25]Удалено модератором
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2017.07.30;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.002 c