یک متغیر String که توش رشته ای ANSI ذخیره شده و توی این رشته کلمات فارسی است چون ANSI فارسی ها را به شکل عجیبی نشون میده ؟ کامپوننتی میخواهم که ANSI را به UTF8 تبدیل کند
یک متغیر String که توش رشته ای ANSI ذخیره شده و توی این رشته کلمات فارسی است چون ANSI فارسی ها را به شکل عجیبی نشون میده ؟ کامپوننتی میخواهم که ANSI را به UTF8 تبدیل کند
چه نسخه ایی از دلفی؟ اگر توی رشته ANSI متن فارسی ذخیره شده، یعنی دارید از Code Page فارسی استفاده می کنید. برای اینکه متن فارسی به هم نریزه، یا باید همیشه روی اون سیستم Code Page فارسی نصب باشه، یا از یونیکد استفاده کنید. برای تبدیل به UTF-8 می تونید از تابع AnsiToUtf8 استفاده کنید.
برای ذخیره رشته های UTF-8 از نوع داده UTF8String استفاده کنید، البته در دلفی 2009 و 2010، نه نسخه های قدیمی تر که از یونیکد پشتیبانی نمی کنند.
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
آقای کشاورز سلام
راهنمائی میکنید که در دلفی 7 چه کنیم
من یک رشته فارسی را در یونیت خودم نوشتم و با استفاده از یک وب سرویس sms میزنم اما متن من به صورت (؟؟؟؟) میره
خواهشمندم راهنمائی کنید
سلام
اگر ایشان را دیدید سلام ما را هم برسانید.آقای کشاورز سلام
دلفی 7 به صورت ذاتی از یونیکد پشتیبانی نمی کنه و برای رفع این مشکل بهتره که از Delphi 2009 یا نسخه های جدید تر استفاده کنید.من یک رشته فارسی را در یونیت خودم نوشتم و با استفاده از یک وب سرویس sms میزنم اما متن من به صورت (؟؟؟؟) میره
اگر همچنان اصرار به استفاده از دلفی 7 دارید شاید این تاپیک کمکتون کنه:
https://barnamenevis.org/showthread.php?355989
موفق باشید...
آخرین ویرایش به وسیله BORHAN TEC : یک شنبه 18 فروردین 1392 در 00:27 صبح
آقای کشاورز..!!!
این رو هم یک تستی کنید بلکم فرجی شد!
در قطعه کد مربوطه این رو اضافه کنید:
HTTPRIO1.HTTPWebNode.UseUTF8InHeader := true
در تکمیل صحبت دوستمون:
دلفی 7 ذاتا یونیکد نیست اما یونیکد نبودنش ارتباطی به یونیکد نفرستادن پارامتر ها به خارج از دلفی پیدا نمی کنه.
این کاملا به پیاده سازی خاص کامپوننت ها ربط داره. مثلا TNT هم روی همین 7 یونیکد رو پیاده می کنه.
شما می تونید با اسمبلی هم این کار رو کنید! اما همونطور که دوستمون گفتند اگر سختتون نیست کوچ کنید.
البته نه به خاطر مساله ی جاری!
من هم دارم یواش یواش متقاعد می شم که دلفی 7 عزیز و گرامی رو به قفسه بسپارم و برم سراغ XE های بزرگوار.
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/
نرم افزار پخش مویرگی
TNT از WideString استفاده میکنه که اون هم از نوع رشته موجود در COM ویندوز استفاده میکنه. در واقع برای این کار از قابلیت ویندوز استفاده میکنه. سرعتش هم به همین علت پایینه.این کاملا به پیاده سازی خاص کامپوننت ها ربط داره. مثلا TNT هم روی همین 7 یونیکد رو پیاده می کنه.
وقتی گفته میشه یک نسخه از دلفی یونیکد هست یعنی اینکه نوع داده Native سازگار با یونیکد داره، به طور پیش فرض از اون استفاده میکنه، و خودش قابلیت های مختلف مورد نیاز برای کار با این نوع از داده رو براتون فراهم میکنه. وگرنه شما می تونید با همه داده های یونیکد و غیر یونیکد خودتون با هر کامپایلری به صورت باینری کار کنید، ولی اون وقت باید خودتون همه جزئیات یونیکد رو هندل کنید.
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
با سلام
از توابع UTF8Encode و UTF8Decode می توانید استفاده نمایید .
موفق باشید