PDA

View Full Version : تبدیل متن فارسی به کد اسکی



haniyeh.ghassami
سه شنبه 26 آبان 1394, 10:58 صبح
سلام
چج.ر میشه متن فارسی ره به کد اسکی در محیط لینوکس تبدیل کرد؟ با زبان سی ++

حامد مصافی
پنج شنبه 28 آبان 1394, 10:24 صبح
کد اسکی بر مبنای استاندارد ۸ بایتی ANSI ایجاد شده‌اند که فقط دربرگیرنده کاراکتر‌های انگلیسی هستند. در گذشته برخی فارسی‌ساز‌ها روی کاراکتر‌های اسکی با مقدار بالاتر از ۱۲۷ تأثیر می‌گذاشتند. اما امروزه متن فارسی در قالب یونیکد ذخیره می‌شود که هر کاراکتر یک word یا دو بایت اشغال می‌کند و عبارت کد اسکی در مورد این متون نادرست است. شما می‌توانید کد یونیکد این کاراکتر‌ها را بدست بیاورید. اما کلیت سوال شما مبهم است. متن در حالت عادی مجموعه‌ای از بایت‌هاست این شما می‌خواهید مقدار متنی بایت‌ها را به دست بیاورید؟ یا چی؟

haniyeh.ghassami
پنج شنبه 28 آبان 1394, 11:19 صبح
ممنونم. بله من در اصل می خواهم حروف فارسی به کد دسیمالش تبدیل بشه
مطابق این سایت (https://www.branah.com/ascii-converter)که مثلا برای حرف ف عدد 1601 میدهد.
در اصل کدی را می خواهم که رشته ای از حروف فارسی را بگیرد و به جای تک تک حروف مغادل دسیمالش را برگرداند.

حامد مصافی
پنج شنبه 28 آبان 1394, 12:41 عصر
اگه درست حدس زده باشم شما از کیوت استفاده می‌کنید. در اینصورت متد QChar::unicode همین کار رو انجام میده.

haniyeh.ghassami
شنبه 30 آبان 1394, 09:34 صبح
سلام
بله
مشکلم حل شد.

if (TextisUnicode(text))
{
QString qstr=QString::fromStdString(text);
QChar ch;
for (i = 0 ; i<qstr.length();i++)
{
ch=qstr.at(i);
t = ch.unicode();
out1 = out1 + HexToStr(t/256);
out1 = out1 + HexToStr(t%256);
}

}