ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل بک آپ گیری از اطلاعات فارسی در اکسل



yavarikhani
11-29-2008, 08:35 AM
سلام
من یه بار یه کامپوننت فرم ساز داشتم
این کامپوننت امکان بک آپ گیری از فرم ها رو با فرمت CSV برای اکسل داشت
همه چیز خوب بود و اطلاعات فرم ها درست دریافت میشد و اطلاعات به صورت کامل و درست به ایمیل هم ارسال میشد و در ایمیل قابل خوندن بود
ولی یه مشکل وجود داشت
وقتی از اطلاعات فرم ها بکاپ CSV میگرفتیم و اون رو تو اکسل باز میکردیم، اطلاعات انگلیسی به خوبی نمایش داده میشد ولی اطلاعات فارسی به صورت کاراکترهای ناخوانا نشون داده میشد! برسی کردم تمام چیزهایی که قابلیت بک آپ گیری برای اکسل رو دارن چه در جوملا و چه در مامبو و... با این مشکل مواجه هستند
مشکل از کجاست و چطور حل میشه؟

پی نوشت: مساله اصلا اون فرم ساز نیست، مساله مشکل با بکاپ گیری اطلاعات فارسی و خوندن اونها در اکسل هست که برای تمام امکانات این مشکل وجود داره، نمیخوام مشکل اون فرم ساز رو حل کنم چون اصلا دیگه ازش استفاده نمیکنم، کلا میخوام بدونم این مشکل برای چیه و چجوری حل میشه

atoofy
11-29-2008, 08:50 AM
سلام. احتمالا مشکل از encoding دیتاها هست که باید UTF-8 باشه اما این گونه نیست.

یــــــــــــــــــاعــــ ـــــــــــلی

yavarikhani
11-29-2008, 02:39 PM
اینکودینگ تمام فایلهای فرم ساز رو utf-8 کردم ولی هیچ تاثیری نداشت!

firoozmandan
12-10-2008, 06:55 AM
سلام. احتمالا مشکل از encoding دیتاها هست که باید UTF-8 باشه اما این گونه نیست.

یــــــــــــــــــاعــــ ـــــــــــلی


سلام

دیتا نه فایل ...

یا علی

yavarikhani
12-20-2008, 06:39 AM
اینکد دیتا رو هم utf-8 کردم ولی فایده ای نداشت!
چیکار کنم؟
برای تغییر اینکد دیتا خط زیر رو


header( "Content-type: application/vnd.ms-excel; charset=UTF-16LE" );

header("Content-disposition: attachment; filename=ckforms_" . date("Ymd").".csv");

$n=count( $fields );
for ($i=0; $i < $n; $i++)
{
$rowField = $fields[$i];
if ($rowField->typefield != 'button')
{
$unicode_str_for_Excel = mb_convert_encoding( $rowField->name, 'UTF-16LE', 'UTF-8');

$data .= "\"".$unicode_str_for_Excel."\"";
if ($i < $n-1) $data .= ";";
}
}

به خط زیر تبدیل کردم


header( "Content-type: application/vnd.ms-excel; charset=UTF-8" );

header("Content-disposition: attachment; filename=ckforms_" . date("Ymd").".csv");

$n=count( $fields );
for ($i=0; $i < $n; $i++)
{
$rowField = $fields[$i];
if ($rowField->typefield != 'button')
{
$unicode_str_for_Excel = mb_convert_encoding( $rowField->name, 'UTF-16LE', 'UTF-8');

$data .= "\"".$unicode_str_for_Excel."\"";
if ($i < $n-1) $data .= ";";
}
}