نمایش نتایج 1 تا 18 از 18

نام تاپیک: مشكل Indy با فارسي

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    212

    مشكل Indy با فارسي

    سلام
    من از دلفي 7 استفاده مي‌كنم. در ارسال ايميل، اگر Body فارسي باشه، كاراكترهاي نادرست ارسال مي‌شه. از Tnt براي يونيكد كردن متن استفاده كردم ولي فايده‌اي نداشت. شنيدم كه Indy10 يونيكد را پشتيباني مي‌كنه. نصبش كردم ولي افاقه‌اي نكرد. از تركيب Indy10 و Tnt هم استفاده كردم درست نشد.
    كم كم دارم به قدرت Indy شك مي‌كنم.

  2. #2

    نقل قول: مشكل Indy با فارسي

    ربطی به فارسی نداره؛ string در دلفی 7 یونیکد نیست، پس هر داده ایی رو که بریزید در string در دلفی 7، اگر یونیکد باشه، باطل میشه!
    استفاده از Indy 10 یا کامپوننت های TNT هم موقعی مفید هست که شما بدونید دارید چیکار می کنید، و بدونید که چطور باید داده های یونیکد خودتان را در یک محیط غیریونیکد حفظ کنید.

    اگر اطلاعی از این مسائل ندارید، و صرفا میخواید برنامه تون با فارسی مشکل نداشته باشه، بهتره برید سراغ دلفی 2010 تا درگیر مسائل مربوط به تبدیل یونیکد به ANSI و بالعکس برای همچین کارهای ساده ایی نشید.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    212

    نقل قول: مشكل Indy با فارسي

    ممنون. ولي من اصلا نيازي به هيچ واسط يا ذخيره داده براي نگهداري يا حفظ اطلاعات يونيكد در محيط غير يونيكد ندارم. به اين كد نگاه كنيد:

    IdMessage.Body.Assign(tntMemoMsg.Lines)

    مستقيما از tnt داخل IdMessage مي‌شه و بعدش هم ارسال مي‌شه

  4. #4
    کاربر دائمی
    تاریخ عضویت
    آذر 1388
    محل زندگی
    ته کوچه شک...
    پست
    234

    نقل قول: مشكل Indy با فارسي

    ربطی به فارسی نداره؛ string در دلفی 7 یونیکد نیست، پس هر داده ایی رو که بریزید در string در دلفی 7، اگر یونیکد باشه، باطل میشه!
    یه سوال.وقتی داخل یک رشته ای در دلفی 7 مقدار فارسی میریزیم و مثلاً روی فرم نشونش میدیم،چرا باطل نمیشه. یعنی میخوام بدونم آیا اون داده ها هم یونیکد هستند یا نه ؟

  5. #5
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    212

    نقل قول: مشكل Indy با فارسي

    خير يونيكد نيستند. كلا دلفي 7 از يونيكد پشتيباني نمي‌كنه. كاراكترهاي فارسي را كه مي‌بينيد به واسطه ويندوز شماست كه زبان فارسي را پشتيباني مي‌كند.

  6. #6

    نقل قول: مشكل Indy با فارسي

    مستقيما از tnt داخل IdMessage مي‌شه و بعدش هم ارسال مي‌شه
    همین دیگه! خصوصیت IdMessage.Body شما در دلفی 7 از چه نوعی هست؟ WideString هست؟ نه، string هست. string هم در دلفی 7 یعنی AnsiString، پس داده یونیکد شما باطل شد!

    داده رو به صورت Stream براش بفرستید، یا اینکه، داده را با Base64 کد کنید، و سپس براش بفرستید. البته باید header را هم به درستی تغییر بدید که مشخص باشه شما دارید از Base64 استفاده می کنید.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  7. #7

    نقل قول: مشكل Indy با فارسي

    یه سوال.وقتی داخل یک رشته ای در دلفی 7 مقدار فارسی میریزیم و مثلاً روی فرم نشونش میدیم،چرا باطل نمیشه. یعنی میخوام بدونم آیا اون داده ها هم یونیکد هستند یا نه ؟
    اونها داده های ANSI هستند که از CodePage فارسی استفاده می کنند. در صورتی هم درست نمایش داده میشند که در سیستم مقصد، کاربر CodePage فعالش را برای نرم افزارهای غیر یونیکد، بر روی همان زبان مورد نظر شما (فارسی) تنظیم کرده باشه، وگرنه کارکترها به شکل صحیح نمایش داده نمیشند.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  8. #8
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    212

    نقل قول: مشكل Indy با فارسي

    داده رو به صورت Stream براش بفرستید
    چطوري؟
    ممكنه يك نمونه بگذاريد؟

  9. #9

    نقل قول: مشكل Indy با فارسي

    ممكنه يك نمونه بگذاريد؟
    http://www.barnamenevis.org/sh...ad.php?t=95075


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  10. #10
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    212

    نقل قول: مشكل Indy با فارسي

    ممنون.
    كدي كه در آن تاپيك گذاشته بوديد امتحان كردم. مشكلم حل شد.
    البته در ابتدا ايميل ارسالي خالي مي‌رفت. با حذف بخش message partي كه با MailText درست كرده بوديد و انتصاب مستقيم IdMessage1.Body.Text := EncodedText مشكل حل شد

  11. #11

    نقل قول: مشكل Indy با فارسي

    سلام آقاي نعمتي
    ميشه شما كه كارتون راه افتاد يك sample براي ارسال ايميل بگذارين. من همين مشكل را دارم ولي نتونستم ايميل را بفرستم. البته ميفرسته ولي محتوا مانند زير ميشه:
    {\rtf1\fbidis\ansi\ansicpg1256\deff0\deflang1065{\  fonttbl{\f0\fnil\fcharset0 MS Sans Serif;}} \viewkind4\uc1\pard\ltrpar\f0\fs16 TntRichEdit1\par \par }  

    آقاي كشاورز
    يه جاي ديگه نوشته بودين كه با دلفي 2009 و ... كار كنيم. ولي اين براي من ممكن نيست چون يه برنامه عريض و طويل دارم كه با دلفي 7 نوشته شده و همه اون به راحتي قابل انتقال به 2009 نيست. الان هم كارفرما گفته كه ميخواد امكان ارسال ايميل را هم بهش اضافه بكنه.
    لطفا اگه ميتونين راهنمايي كنين
    آخرین ویرایش به وسیله smakhavan : یک شنبه 25 مهر 1389 در 19:36 عصر

  12. #12

    نقل قول: مشكل Indy با فارسي

    البته ميفرسته ولي محتوا مانند زير ميشه:
    خب، شما دارید متن RTF ارسال میکنید، نه Plain Text. احتمالا متن رو در RichEdit نوشتید، و دارید از RichEdit به صورت Stream می خونید. این کدهایی هم که می بینید، تگ های فرمت RTF هستند.

    يه جاي ديگه نوشته بودين كه با دلفي 2009 و ... كار كنيم. ولي اين براي من ممكن نيست چون يه برنامه عريض و طويل دارم كه با دلفي 7 نوشته شده و همه اون به راحتي قابل انتقال به 2009 نيست.
    آقای نعمتی هم کدشان را از دلفی 7 به نسخه های بالاتر انتقال ندادند، بلکه با همان دلفی 7 مشکل شان حل شد.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  13. #13

    نقل قول: مشكل Indy با فارسي

    خيلي ممنون آقاي كشاورز

    درست شد ولي هنوز عنوان )subject) را فارسي نميفرسته، يعني دقيقا همان متن كد شده‌اي را كه براي متن پيام ميگذارم و درست نمايش ميده براي عنوان ايميل درست نمايش نميدهد!!

  14. #14

    نقل قول: مشكل Indy با فارسي

    ولي هنوز عنوان )subject) را فارسي نميفرسته
    درباره Subject فارسی در ایمیل در همین تالار یک تاپیک دیگه هست.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  15. #15

    نقل قول: مشكل Indy با فارسي

    سلام آقاي كشاورز

    همه چيز درست شد. دستتون درد نكنه فقط يه موردي ميمونه اونهم اينكه وقتي يه فايل Attach ميكنم متن ميريزه به هم

    من از دستور زير براي پيوست كردن فايل استفاده ميكنم. درسته يا نه؟
      TIdAttachment.Create(IdMessage1.MessageParts, 'c:\a.jpg') ;

  16. #16

    نقل قول: مشكل Indy با فارسي

    لطفا اگه كسي ميدونه راهنمايي ام كنه، خيلي كار فوريه
    وقتي يك پيوست براي فايل ايجاد ميكند متن به صورت
    //5UAG4AdABSAGkAYwBoAEUAZABpAHQAMQANAAoA

    در مياد. واقعا نميدونم چه كار كنم

  17. #17

    نقل قول: مشكل Indy با فارسي

    لطفا اگه كسي ميدونه راهنمايي ام كنه، خيلي كار فوريه
    وقتي يك پيوست براي فايل ايجاد ميكند متن به صورت
    //5UAG4AdABSAGkAYwBoAEUAZABpAHQAMQANAAoA

    در مياد. واقعا نميدونم چه كار كنم
    به نظر Base64 میاد. ببینید؛ برای همچین کارهایی باید حداقل با پروتکل های مربوطه آشنا باشید. انتظار نداشته باشید که همیجوری با نوشتن یک دستور همه کارها به طور خودکار براتون انجام بشه. وقتی از Attachment استفاده می کنید، دیگه ایمیل تون Plain Text نیست، بلکه میشه Multi-part. حالا هر Part میتونه یا Text باشه، یا Attachment، و هر Part هم میتونه Encoding و MIME Type خودش را داشته باشه. نرم افزار گیرنده هم بر اساس نوع Encoding و Type تعریف شده برای هر Part، آن را پردازش میکنه. مثلا اگر مطلبی به صورت Base64 اینکود شده باشه، اون را با یک Decoder مربوط به Base64 دیکود میکنه، تا به داده اصلی برسه.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  18. #18

    نقل قول: مشكل Indy با فارسي

    خيلي ممنون از اينكه جواب ميدين
    بله درست ميفرماييد اون متن كه گذاشتم base64 هستش و با استفاده از روشي كه در يك تاپيك ديگه مطرح كرده بودين تبديل ميشه

    مشكل من هم همينه كه نميدونم چرا اين اضافه شدن فايل پيوست تاثير بر روي اصل پيام ميگذاره و نميتونم بفهمم. چون خيلي تو اين موارد سر رشته اي ندارم از دوستان ميخواستم ببينم كسي با اين مشكل برخورد كرده يا نه.
    نمونه برنامه اي كه با اول ايميل ارسال ميكنم هم پيوست شده است

    خيلي خوشحال ميشم اگه بتونه كسي بهم كمك بكنه
    فایل های ضمیمه فایل های ضمیمه

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •