موضوعات وبسایت : برنامه نویسی
سوالات امتحان آیین نامه رانندگی

چگونه در ویژوال استودیو فارسی بنویسیم

نویسنده : محمد پارسایی | زمان انتشار : 25 آذر 1400 ساعت 15:15

جهت انجام پروژه های دانشجویی و یا تمرین‌های برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید

@AlirezaSepand



  1. چهارشنبه 10 دی 1393, 20:35 عصر #1

    سوالات امتحان آیین نامه رانندگی

    مشکل با زبان فارسی در ویژوال استادیو

    سلام
    داخل ویژوال استادیو 2010 موقع استفاده از زبان فارسی، بعد از کامپایل، نوشته ام به صورت ؟؟؟؟؟؟؟ (علامت سوال) نمایش داده می شود! چه در استفاده از نوشته فارسی در set Text ویجت ها و چه در فایل ها، تو کیوت کریتور این مشکل رو ندارم.
    از دستورات این چنینی هم استفاده کردم فایده ای نداشته
    QString::fromUtf8
    تو ویژوال استادیو از file -> advance save option هم استفاده کردم و حالت encoding رو به utf-8 و چندین مورد دیگه تغییر دادم جواب نداد
    نمی خوام نوشته هام رو به صورتی که QApplication::translate (مثل دیزاینر) می خونه به صورت کد مثلا 133 ذخیره کنم

    نمونه کد مربوط به فایل ها:


    QString unicodeString = "نوشته فارسی من به صورت علامت سوال ذخیره می گردد";
    QFile fileOut("qt_unicode3.txt");
    fileOut.open(QIODevice::ReadWrite | QIODevice::Text);
    QTextStream streamFileOut(&fileOut);
    streamFileOut.setCodec("UTF-8");
    streamFileOut.setGenerateByteOrderMark(true);
    streamFileOut << unicodeString;
    streamFileOut.flush();
    fileOut.close();


  2. چهارشنبه 10 دی 1393, 21:30 عصر #2

    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    QString unicodeString = QString::fromUtf8("نوشته فارسی من به صورت علامت سوال ذخیره می گردد");

  3. چهارشنبه 10 دی 1393, 21:53 عصر #3

    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    quote_icon.png نوشته شده توسط حامد مصافیviewpost-left.png

    QString unicodeString = QString::fromUtf8("نوشته فارسی من به صورت علامت سوال ذخیره می گردد");
    جواب نمی ده!
  4. جمعه 12 دی 1393, 10:53 صبح #4

    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    واقعا کسی تا به حال به این مشکل برنخورده و راه کاری برای حل نداره،
    حداقل کمی به این مشکل فکر کنید شاید بعداً برای شما هم پیش بیاد
  5. جمعه 12 دی 1393, 11:22 صبح #5

    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    سلام

    دوست عزیز شما کد زیر رو در فایلی که مربوط به فرم یا سورس برنامه هستش قرار بدید نتیجه رو اعلام کنید.پ


    #pragma execution_character_set("utf-8")

  6. جمعه 12 دی 1393, 11:46 صبح #6

    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    quote_icon.png نوشته شده توسط کامبیز اسدزادهviewpost-left.png

    سلام

    دوست عزیز شما کد زیر رو در فایلی که مربوط به فرم یا سورس برنامه هستش قرار بدید نتیجه رو اعلام کنید.پ


    #pragma execution_character_set("utf-8")
    سلام نه متاسفانه جواب نداد، در editor ویژوال استادیو 2010 متن فارسی نمایش داده می شه اما بعد از کامپایل ؟؟؟؟ نشون داده می شه!
    warning: unknown pragma
    اما در ویژوال استادیو 2013 به نحو احسن و عالی جواب داد
    ممنون که جواب دادید آخرین ویرایش به وسیله chikar : شنبه 13 دی 1393 در 19:12 عصر
  7. جمعه 12 دی 1393, 11:56 صبح #7

    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    آیا امکانش هست که خطا از PDB فایل باشه؟! آخرین ویرایش به وسیله chikar : جمعه 12 دی 1393 در 17:32 عصر
  8. جمعه 12 دی 1393, 15:26 عصر #8

    user-offline.png

    کاربر دائمی star0300.gif


    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    من از این روش استفاده می کنم درست هم کار می کنه :

    QString::fromWCharArray(L"می")

    البته زمان هایی که فارسی و انگلیسی مخلوط نوشته میشه کار نمی کنه برای حل اون باید کد unicode حروف فارسی رو بزارید .

    روش استانداردتر می تونه این باشه که بجای فارسی انگلیسی بنوسید و در tr() قرار بدید و با استفاده از ابزار Qt Linguist برنامه رو ترجمه کنید .

    آخرین ویرایش به وسیله omid_kma : جمعه 12 دی 1393 در 16:07 عصر
  9. جمعه 12 دی 1393, 17:18 عصر #9

    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    encoding فایل مورد نظر رو بررسی بکن برادر. برای مثال با ++Notepad. من سالهاست اینطوری با کیوت کار میکنم. هیچ مشکلی نباید وجود داشته باشه
  10. جمعه 12 دی 1393, 17:18 عصر #10

    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    quote_icon.png نوشته شده توسط omid_kmaviewpost-left.png

    من از این روش استفاده می کنم درست هم کار می کنه :


    QString::fromWCharArray(L"می")

    البته زمان هایی که فارسی و انگلیسی مخلوط نوشته میشه کار نمی کنه برای حل اون باید کد unicode حروف فارسی رو بزارید .

    روش استانداردتر می تونه این باشه که بجای فارسی انگلیسی بنوسید و در tr() قرار بدید و با استفاده از ابزار Qt Linguist برنامه رو ترجمه کنید .

    ممنون جواب داد،عالی بود، حتی برای مخلوط انگلیسی و فارسی و اعداد!
    خیلی لطف کردی آقا امید

    فقط امکانش هست یه مثال بزنید برای تبدیل "حروف فارسی" به unicode و خوندن اون رو؟
    در tr() یعنی چی انگلیسی بگذاریم، منظورتون معنی لغت فارسی اون به صورت انگلیسی است یا فینگلیش؟

    آخرین ویرایش به وسیله chikar : جمعه 12 دی 1393 در 18:11 عصر
  11. جمعه 12 دی 1393, 17:24 عصر #11

    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    quote_icon.png نوشته شده توسط حامد مصافیviewpost-left.png

    encoding فایل مورد نظر رو بررسی بکن برادر. برای مثال با ++Notepad. من سالهاست اینطوری با کیوت کار میکنم. هیچ مشکلی نباید وجود داشته باشه

    encoding فایل بر روی utf-8 هست، حتی من خود فایل رو توی notepad بر روی utf-8 قرار دادم و دوباره ذخیره کردم، برخی از تنظیمات ویژوال استادیو هم که بر روی utf-8 و حتی unicode قرار گرفت، فایده ای نداشت، حتی کل پروژه رو دوباره با save as با فرمت utf-8 , یا unicode ولی جواب نداد
    حالا این آقا امید یه راه کار برای حل داده که جواب داد
    مرسی
  12. جمعه 12 دی 1393, 18:25 عصر #12

    user-offline.png

    کاربر دائمی star0300.gif


    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    quote_icon.png نوشته شده توسط chikarviewpost-left.png

    ممنون جواب داد،عالی بود، حتی برای مخلوط انگلیسی و فارسی و اعداد!
    خیلی لطف کردی آقا امید

    فقط امکانش هست یه مثال بزنید تبدیل حروف فارسی به unicode و خوندن اون رو؟
    در tr() یعنی چی انگلیسی بگذاریم، منظورتون معنی لغت فارسی اون به صورت انگلیسی است یا فینگلیش؟

    هیچی حالا که کار می کنه لازم نیست unicode
    من قبلا یک مشکل داشتم می خواستم یکسری جمله رو بر اساس یکسری کاراکتر تقسیم کنم .
    کاراکتر ها رو به این شکل تعریف می کردم کار نمی کرد :

    QString filters = QString(" \n,;!*&@#'$%^.\t*/+:\"()[]=?-{}<>_") +
    QString::fromWCharArray(L"؛؟،ˈ»«");

    نهایتا مجبور شدم این طوری بنویسم

    QString filters = QString(" \n,;!*&@#'$%^.\t*/+:\"()[]=?-{}<>_") +
    QString::fromWCharArray(L"\x60c\x61f\x61b\x2c8\x0b b\x0ab");

    یعنی به جای هر کاراکتر کد یونیکد . حالا اگر برای شما حل شد و مشکلی نداره دیگه نیازی نیست این کار.

    در مورد linguist هم این جا رو ببینید
    http://doc.qt.io/qt-5/qtlinguist-index.html
    یک مثال هم آقای مصافی قبلا گذاشته بودن :
    https://barnamenevis.org/showthread.p...AC%D8%B1%D8%A7


  13. جمعه 12 دی 1393, 19:05 عصر #13

    user-offline.png

    کاربر دائمی star0300.gif


    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    quote_icon.png نوشته شده توسط حامد مصافیviewpost-left.png

    encoding فایل مورد نظر رو بررسی بکن برادر. برای مثال با ++Notepad. من سالهاست اینطوری با کیوت کار میکنم. هیچ مشکلی نباید وجود داشته باشه

    باگ ویژوال استودیو هستش http://support.microsoft.com/kb/2284668
    بدون L"" نمی تونه تشخیص بده اون رشته utf8 هست.
  14. جمعه 12 دی 1393, 20:06 عصر #14

    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    quote_icon.png نوشته شده توسط omid_kmaviewpost-left.png

    هیچی حالا که کار می کنه لازم نیست unicode
    من قبلا یک مشکل داشتم می خواستم یکسری جمله رو بر اساس یکسری کاراکتر تقسیم کنم .
    کاراکتر ها رو به این شکل تعریف می کردم کار نمی کرد :


    QString filters = QString(" \n,;!*&@#'$%^.\t*/+:\"()[]=?-{}<>_") +
    QString::fromWCharArray(L"؛؟،ˈ»«");

    نهایتا مجبور شدم این طوری بنویسم


    QString filters = QString(" \n,;!*&@#'$%^.\t*/+:\"()[]=?-{}<>_") +
    QString::fromWCharArray(L"\x60c\x61f\x61b\x2c8\x0b b\x0ab");

    یعنی به جای هر کاراکتر کد یونیکد . حالا اگر برای شما حل شد و مشکلی نداره دیگه نیازی نیست این کار.

    در مورد linguist هم این جا رو ببینید
    http://doc.qt.io/qt-5/qtlinguist-index.html
    یک مثال هم آقای مصافی قبلا گذاشته بودن :
    https://barnamenevis.org/showthread.p...AC%D8%B1%D8%A7

    ممنون در همه موارد توجیه کننده بود و عالی راهنمایی کردید و تشکر فراوان از شما

    فقط سوال آخر: آیا می شه از این روش برای ورودی های مثل lineEdit هم استفاده کرد؟(البته در صورت دریافت کاراکترهای فارسی از lineEdit و ذخیره اون بدون این روش هم هیچ مشکلی نیست، و فقط این سوال جنبه راهنمایی و پرسشی از شما داره)باز هم ممنون


    QString::fromWCharArray(L"متن فارسی")); //L is set
    QString::fromWCharArray(my_lineEdit)); //L is Not set


  15. شنبه 13 دی 1393, 22:44 عصر #15

    user-offline.png

    کاربر دائمی star0300.gif


    نقل قول: مشکل با زبان فارسی در ویژوال استادیو

    quote_icon.png نوشته شده توسط chikarviewpost-left.png

    ممنون در همه موارد توجیه کننده بود و عالی راهنمایی کردید و تشکر فراوان از شما

    فقط سوال آخر: آیا می شه از این روش برای ورودی های مثل lineEdit هم استفاده کرد؟(البته در صورت دریافت کاراکترهای فارسی از lineEdit و ذخیره اون بدون این روش هم هیچ مشکلی نیست، و فقط این سوال جنبه راهنمایی و پرسشی از شما داره)باز هم ممنون


    QString::fromWCharArray(L"متن فارسی")); //L is set
    QString::fromWCharArray(my_lineEdit)); //L is Not set

    برای lineEdit نیازی به L نیست از تابع .text() استفاده کنید

    QString str=lineEdit.text();

    مشکل تبدیل فقط برای وقتی هستش که رشته رو توی ادیتور ویژوال استودیو می نویسید

آیا این مطلب برای شما مفید بود؟


منبع: barnamenevis.org



ارسال نظر

نام


ایمیل


نظر