PDA

View Full Version : سوال: دریافت و ارسال اطلاعات فارسی تحت وب با indy



mohammadyaser
یک شنبه 16 آبان 1389, 08:18 صبح
سلام به همه استادا
من یک برنامه دارم که با دلفی 2009 نوشتمش به این صورت که اطلاعات رو با استفاده از کامپوننت ایندی می فرستم .تا اینجا درست کار می کنه ولی اگر بخوام فارسی بفرستم مقادیر علامت سوال می فرسته از اون طرف هم وقتی می خوام اطلاعات فارسی رو از سایت بگیرم اطلاعات نا معتبر میده.چند روزه دارم کار می کنم لطفا کمکم کنید. البته لازم به ذکره که من چندین بار تاپیک های دوستان رو خوندم وهمه رو هم موبه مو اجرا کردم .بخشهایی از کد رو هم براتون ضمیمه می کنم.
SL.Values['aa']:=aa;http.post
('http://forward2.orgfree.com/inserttable.php',SL );

UTF8Decode(Get('http://forward2.orgfree.com/istrue2.php?shomare='+d));
Result.noebar:=CookieManager.CookieCollection[0].Value;
Result.hoze:= CookieManager.CookieCollection[1].Value;

ghabil
سه شنبه 30 آذر 1389, 22:31 عصر
اگر دلفی 2009 یونیکد ساپورت نمیکنه (اینقدر با دلفی ها کار نکردم یادم رفته) باید Locale رو فارسی کنید، تنظیماتش در کنترل پنل، ریجینال ستینگس، ادونسد (چه فارسی اینگیلیسیی نوشتم) هست. اگر ساپورت میکنه مشکل ارسال نیست، جای دیگه ای درای خرابش میکنی.

الان دیدم بهم خصوصی هم پیغام داده بودی، دوباره برو دقت کن ببین برنامت رو از اول Stand Alone ساختی (همونطوریکه توی مثال بود) یا ISAPI ساختی؟

vcldeveloper
چهارشنبه 01 دی 1389, 00:19 صبح
این الان پروژه IntraWeb هست یا یک پروژه معمولی دلفی؟ دلفی 2009 به طور پیش فرض از Indy 10 استفاده میکنه. دلفی 2009 و Indy 10 هر دو از یونیکد پشتیبانی می کنند، و مشکلی در این زمینه ندارند. شما باید ببینید اون وب سایت داره داده خودش را به چه Encoding ایی ارسال میکنه، و سپس اون داده را بعد از دریافت، به Encoding مورد نظر خودتون تبدیل کنید.

Peresident_y
شنبه 28 اسفند 1389, 13:14 عصر
مشکل در url encode است
url باید کد شود و به پشتیبانی یا عدم آن در دلفی مربوط نمی باشد

naderanhari
پنج شنبه 12 آبان 1390, 16:57 عصر
از توابع زیر برای Post کردن استفاده کنید. تو فارسی حتما جواب میده:


function Post(URL: String; ParamList: TStringStream): string;
var
HTTP: TIdHTTP;
begin
HTTP := TIdHTTP.Create(nil);
try
try
HTTP.Request.ContentType :='application/x-www-form-urlencoded';
Result := HTTP.Post( URL, ParamList );
Except
on E : Exception do
begin
Result := '';
end;
end;
finally
FreeAndNil(HTTP);
FreeAndNil(ParamList);
end;

end;

function MyFunc( P1, P2, P3, P4: String): String;
var
MyURL: String;
ParamList : TStringStream;
begin
MyURL := 'http://www.url.com/url.php?';

ParamList := TStringStream.Create('');
ParamList.WriteString('P1=' + P1 + '&');
ParamList.WriteString('P2=' + P2 + '&');
ParamList.WriteString('P3=' + P3 + '&');
ParamList.WriteString('P4=' + P4);

Result := Post( MyURL, ParamList);

end;