View Full Version : سوال: چاپ یک رشته فارسی
alirezabe
چهارشنبه 28 اردیبهشت 1390, 22:32 عصر
سلام
من یک سری اطلاعات فارسی از روی دیتابیس می گیرم و روی comboBox و tableview نمایش می دهم و درست کار می کند ولی حالا اگر بخواهم این اطلاعات را یک جوری پرینت بگیرم باید چه کار کنم
خودم می خواستم بریزم تو یک فایل html و آن را چاپ کنم ولی نمیشه و با اینکه coding مرور گر هم روی utf-8 است ولی باز هم نوشته فارسی را در هم نمایش می دهد می خواستم اگر امکانش هست راهنماییم کنید
با تشکر
حامد مصافی
چهارشنبه 28 اردیبهشت 1390, 23:00 عصر
اطلاعاتی که ارائه فرمودید کمی ناقص است. اما گمان میکنم علت استفاده نکردن از متد QString::fromUtf8() باشد
alirezabe
پنج شنبه 29 اردیبهشت 1390, 06:19 صبح
ببخشید اگر کم گفتم ولی کد اون قسمت به شکل زیر است ولی بد به فارسی تبدیل می شود مثلا به جای حرف ی یک مربع می گذارد
QFile file("out4.html");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
return ItemsList;
}
QTextStream out(&file);
QString ali = ItemsList[1];
out << ali.toUtf8() ;
حامد مصافی
پنج شنبه 29 اردیبهشت 1390, 09:38 صبح
این تغییر رو در برنامه اعمال کنید و نتیجه رو بررسی کنید
QString ali = QString::fromUtf8(ItemsList[1]);
alirezabe
پنج شنبه 29 اردیبهشت 1390, 10:22 صبح
نه باز هم نشد
oldboy
پنج شنبه 29 اردیبهشت 1390, 13:46 عصر
من هم یه مشکل مثل این دارم. میخواستم یه تاپیک جدید درست کنم که وقتی اینو دیدم اینجا نوشتم.
من یه Label درست میکنم و متنشو فارسی میکنم، ولی موقع نمایش کاراکترها به صورت علامت سوال ظاهر میشه.
lblUsername=new QLabel(QString::fromUtf8("نام کاربری"));
oldboy
پنج شنبه 29 اردیبهشت 1390, 15:51 عصر
من جوابمو پیدا کردم. مشکل تو save فایل qt بود.
menu -> edit -> select encoding -> utf8 -> save with encoding
کلاسی که درست کرده بودم با encoding utf8 سیو نمیشد. البته از QString::fromUtf8 هم باید استفاده کنی.
alirezabe
پنج شنبه 29 اردیبهشت 1390, 21:16 عصر
خب من این تنظیمات رو انجام داده بودم می شه بپرسم شما راحت می تونید یک متن فارسی را در یک فایل بریزید یانه ؟
oldboy
پنج شنبه 29 اردیبهشت 1390, 23:50 عصر
متاسفانه تا بحال این کارو نکردم، چون تو Qt تازه کارم.
شما این دو خط رو به فایل پروژه اضافه کنید ببینید مشکلتون حل میشه یا نه.
CODECFORTR = UTF-8
CODEFORSRC = UTF-8
البته دقیق یادم نیست که ابتدای این دو خط، CODEC درست بود یا CODE.
alirezabe
جمعه 30 اردیبهشت 1390, 09:04 صبح
مشکل درست شد فقط کافی از تابع زیر برای QTextStream استفاده کنید
QTextStream out(&file);
out.setCodec("ISO 8859-1");
out << QString().fromUtf8(
حامد مصافی
جمعه 30 اردیبهشت 1390, 09:20 صبح
اتفاقا همین الان میخواستم جوابی برات پست کنم که دیدم ریشه مشکل رو پیدا کردی و پیشنهاد من هم استفاده از خط زیر بود:
out.setCodec("UTF-8");
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.