مشکل با زبان فارسی در ویژوال استادیو
سلام
داخل ویژوال استادیو 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();
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
QString unicodeString = QString::fromUtf8("نوشته فارسی من به صورت علامت سوال ذخیره می گردد");
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
نقل قول:
نوشته شده توسط
حامد مصافی
QString unicodeString = QString::fromUtf8("نوشته فارسی من به صورت علامت سوال ذخیره می گردد");
جواب نمی ده!
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
واقعا کسی تا به حال به این مشکل برنخورده و راه کاری برای حل نداره،
حداقل کمی به این مشکل فکر کنید شاید بعداً برای شما هم پیش بیاد
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
سلام
دوست عزیز شما کد زیر رو در فایلی که مربوط به فرم یا سورس برنامه هستش قرار بدید نتیجه رو اعلام کنید.پ
#pragma execution_character_set("utf-8")
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
نقل قول:
نوشته شده توسط
کامبیز اسدزاده
سلام
دوست عزیز شما کد زیر رو در فایلی که مربوط به فرم یا سورس برنامه هستش قرار بدید نتیجه رو اعلام کنید.پ
#pragma execution_character_set("utf-8")
سلام نه متاسفانه جواب نداد، در editor ویژوال استادیو 2010 متن فارسی نمایش داده می شه اما بعد از کامپایل ؟؟؟؟ نشون داده می شه!
warning: unknown pragma
اما در ویژوال استادیو 2013 به نحو احسن و عالی جواب داد
ممنون که جواب دادید
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
آیا امکانش هست که خطا از PDB فایل باشه؟!
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
من از این روش استفاده می کنم درست هم کار می کنه :
QString::fromWCharArray(L"می")
البته زمان هایی که فارسی و انگلیسی مخلوط نوشته میشه کار نمی کنه برای حل اون باید کد unicode حروف فارسی رو بزارید .
روش استانداردتر می تونه این باشه که بجای فارسی انگلیسی بنوسید و در tr() قرار بدید و با استفاده از ابزار Qt Linguist برنامه رو ترجمه کنید .
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
encoding فایل مورد نظر رو بررسی بکن برادر. برای مثال با ++Notepad. من سالهاست اینطوری با کیوت کار میکنم. هیچ مشکلی نباید وجود داشته باشه
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
نقل قول:
نوشته شده توسط
omid_kma
من از این روش استفاده می کنم درست هم کار می کنه :
QString::fromWCharArray(L"می")
البته زمان هایی که فارسی و انگلیسی مخلوط نوشته میشه کار نمی کنه برای حل اون باید کد unicode حروف فارسی رو بزارید .
روش استانداردتر می تونه این باشه که بجای فارسی انگلیسی بنوسید و در tr() قرار بدید و با استفاده از ابزار Qt Linguist برنامه رو ترجمه کنید .
ممنون جواب داد،عالی بود، حتی برای مخلوط انگلیسی و فارسی و اعداد!
خیلی لطف کردی آقا امید
فقط امکانش هست یه مثال بزنید برای تبدیل "حروف فارسی" به unicode و خوندن اون رو؟
در tr() یعنی چی انگلیسی بگذاریم، منظورتون معنی لغت فارسی اون به صورت انگلیسی است یا فینگلیش؟
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
نقل قول:
نوشته شده توسط
حامد مصافی
encoding فایل مورد نظر رو بررسی بکن برادر. برای مثال با ++Notepad. من سالهاست اینطوری با کیوت کار میکنم. هیچ مشکلی نباید وجود داشته باشه
encoding فایل بر روی utf-8 هست، حتی من خود فایل رو توی notepad بر روی utf-8 قرار دادم و دوباره ذخیره کردم، برخی از تنظیمات ویژوال استادیو هم که بر روی utf-8 و حتی unicode قرار گرفت، فایده ای نداشت، حتی کل پروژه رو دوباره با save as با فرمت utf-8 , یا unicode ولی جواب نداد
حالا این آقا امید یه راه کار برای حل داده که جواب داد
مرسی
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
نقل قول:
نوشته شده توسط
chikar
ممنون جواب داد،عالی بود، حتی برای مخلوط انگلیسی و فارسی و اعداد!
خیلی لطف کردی آقا امید
فقط امکانش هست یه مثال بزنید تبدیل حروف فارسی به 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
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
نقل قول:
نوشته شده توسط
حامد مصافی
encoding فایل مورد نظر رو بررسی بکن برادر. برای مثال با ++Notepad. من سالهاست اینطوری با کیوت کار میکنم. هیچ مشکلی نباید وجود داشته باشه
باگ ویژوال استودیو هستش http://support.microsoft.com/kb/2284668
بدون L"" نمی تونه تشخیص بده اون رشته utf8 هست.
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
نقل قول:
نوشته شده توسط
omid_kma
هیچی حالا که کار می کنه لازم نیست 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
نقل قول: مشکل با زبان فارسی در ویژوال استادیو
نقل قول:
نوشته شده توسط
chikar
ممنون در همه موارد توجیه کننده بود و عالی راهنمایی کردید و تشکر فراوان از شما
فقط سوال آخر: آیا می شه از این روش برای ورودی های مثل lineEdit هم استفاده کرد؟(البته در صورت دریافت کاراکترهای فارسی از lineEdit و ذخیره اون بدون این روش هم هیچ مشکلی نیست، و فقط این سوال جنبه راهنمایی و پرسشی از شما داره)باز هم ممنون
QString::fromWCharArray(L"متن فارسی")); //L is set
QString::fromWCharArray(my_lineEdit)); //L is Not set
برای lineEdit نیازی به L نیست از تابع .text() استفاده کنید
QString str=lineEdit.text();
مشکل تبدیل فقط برای وقتی هستش که رشته رو توی ادیتور ویژوال استودیو می نویسید