PDA

View Full Version : مشاهده فونت های فارسی به صورت ؟ و یا # و یا کارکترهای دیگر در ویندوز 7



h_mohamadi
دوشنبه 03 مرداد 1390, 22:17 عصر
سلام دوستان
من پروژه ای دارم که دیتابیس آن MYSQL است و من یک سری متن که درون فارسی که درون exe است را درون دیتابیس می ریزم.
حالا در بعضی از ویندوزها متن ها به صورت ? یا # وارد دیتابیس می شود . در یک سری از ویندوزها این که من در دیتابیس می ریزم درست است اما اگر کاربر درفرم هایم اطلاعات فارسی بریزد و وارد دیتابیس شود داخل دیتابیس به صورت ؟؟ در می آید.
می خواستم بدانم مشکل از کجاست؟
ضمنا تنظیمات فارسی سازی در کنترل پنل هم درست است و من این مشکل را درون xp و win 7 که 32 بیتی است ندارم اغلب در ویندوز 64 بیت و کمی در 32 بیت است.
خواهش می کنم راهنمایی کنید من را ؟؟؟

tdkhakpur
دوشنبه 03 مرداد 1390, 22:26 عصر
ضمنا تنظیمات فارسی سازی در کنترل پنل هم درست است و من این مشکل را درون xp و win 7 که 32 بیتی است ندارم اغلب در ویندوز 64 بیت و کمی در 32 بیت است.


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

Felony
دوشنبه 03 مرداد 1390, 23:06 عصر
ارتباطی به ویندوز ندارد کنترلها و کامپوننتهایی که استفاده میکنید کاراکتر ها رو بصورت asci ذخیره و یا نمایش میدن
ansi نه asci ...

vcldeveloper
سه شنبه 04 مرداد 1390, 12:25 عصر
من پروژه ای دارم که دیتابیس آن MYSQL است و من یک سری متن که درون فارسی که درون exe است را درون دیتابیس می ریزم.
چه نسخه ایی از دلفی؟
با استفاده از چی به MySQL وصل میشید؟
متنی که درون EXE هست، یعنی چی؟ منظورتون اینه که یک سری متن فارسی را خودتان مستقیما در داخل سورس کد تایپ کردید، و آنها را وارد بانک اطلاعاتی می کنید؟ اگر بله، Encoding فایل سورس شما چی هست؟ اگر نمیدونید، در ویرایشگر کد دلفی راست کلیک کنید، و از منوی نمایش داده شده، گزینه File Format را انتخاب کنید، و روی UTF8 کلیک کنید. اگر از دلفی 7 یا نسخه های قدیمی تر استفاده می کنید، نمی تونید Encoding سورس کد را تغییر بدید، بجاش، اون متن ها را در یک فایل متنی یونیکد یا چیز دیگه (مثلا یک ریسورس حاوی داده یونیکد) نگهداری کنید، و در برنامه آنها را در داخل متغیرهایی از نوع WideString لود کنید. همچنین، بررسی کنید که نوع فیلدهایی که دلفی برای فیلدهای بانک شما میسازه، TWideStringField باشه، نه TStringField (در همه نسخه های دلفی، نه فقط دلفی 7).

tdkhakpur
سه شنبه 04 مرداد 1390, 14:10 عصر
ansi نه asci ...
باز مطلب پروندید ولی اینکه اطلاعات زیربنایی ندارید باعث میشه تا جهت آگاهی اذهان عمومی که مخدوشش میکنید یه سری مطلب خدمتتان عرض شود.
اینکه اولا هر دوی این سری از کاراکترها بازه مشابهی دارن و از 0 تا 256 هستند و منظور ما هم همین بازه بود. وقتی با داده کار میکنید شماره کاراکتر مساله هست نه شکل کاراکتر. مثلا در ansi اگر کاراکتر à کد 244 را داشته باشه در asci کدش میشه 133 پش وقتی شخث یک مطلبی تایپ میکنه جاش مشخص هست یعنی بین 0 تا 255 هست.
دوما اینجا مساله به خاطر این بازه هست یعنی widestring قادر هست بازه بیشتری را برای حروف در نظر بگیره و بتونه برای هر کدوم از حروف زبانهای مختلف با استفاده از شماره کدپیج یک عدد خاص بده که به این میگن یونیکد.

Felony
سه شنبه 04 مرداد 1390, 14:50 عصر
باز مطلب پروندید ولی اینکه اطلاعات زیربنایی ندارید باعث میشه تا جهت آگاهی اذهان عمومی که مخدوشش میکنید یه سری مطلب خدمتتان عرض شود.
:لبخندساده:


اینکه اولا هر دوی این سری از کاراکترها بازه مشابهی دارن و از 0 تا 256 هستند و منظور ما هم همین بازه بود.
متن شما :

ارتباطی به ویندوز ندارد کنترلها و کامپوننتهایی که استفاده میکنید کاراکتر ها رو بصورت asci ذخیره و یا نمایش میدن
این متنی بود که شما نوشتی ، همه این رو میدونند که کاراکترهای Ansi کدهایی از 0 تا 255 دارن ، و تو سیستم با کدهای اسکی اونها کار میشه ، ولی شما گفتی کد asci اونها ذخیره میشه که اشتباه هست ، یعنی فایل رو باز کنی نوشته 232,125,146,244 و ... ؟! نه ! به صورت ansi ذخیره میشه ... !

h_mohamadi
سه شنبه 04 مرداد 1390, 20:30 عصر
چه نسخه ایی از دلفی؟
با استفاده از چی به MySQL وصل میشید؟
متنی که درون EXE هست، یعنی چی؟ منظورتون اینه که یک سری متن فارسی را خودتان مستقیما در داخل سورس کد تایپ کردید، و آنها را وارد بانک اطلاعاتی می کنید؟ اگر بله، Encoding فایل سورس شما چی هست؟ اگر نمیدونید، در ویرایشگر کد دلفی راست کلیک کنید، و از منوی نمایش داده شده، گزینه File Format را انتخاب کنید، و روی UTF8 کلیک کنید. اگر از دلفی 7 یا نسخه های قدیمی تر استفاده می کنید، نمی تونید Encoding سورس کد را تغییر بدید، بجاش، اون متن ها را در یک فایل متنی یونیکد یا چیز دیگه (مثلا یک ریسورس حاوی داده یونیکد) نگهداری کنید، و در برنامه آنها را در داخل متغیرهایی از نوع WideString لود کنید. همچنین، بررسی کنید که نوع فیلدهایی که دلفی برای فیلدهای بانک شما میسازه، TWideStringField باشه، نه TStringField (در همه نسخه های دلفی، نه فقط دلفی 7).

من از دلفی 7 استفاده می کنم
از BDE برای کانکنت شدن به MYSQL استفاده می کنم
بله یک سری اطلاعات دیفالت را از درون EXE برای اولین بار که به برنامه کانتکت می شود به صورت فارسی در درون تیبل ها می ریزیم.
آخه مدن در ویندوز XP این مشکل را ندارم و فقط روی بعضی از ویندوز های 7 که 32 بیت است و بیشتر در ویندوز های 64 بیتی دارم!!!!!؟؟؟؟؟

vcldeveloper
چهارشنبه 05 مرداد 1390, 01:35 صبح
من از دلفی 7 استفاده می کنم
مشکلتون به احتمال بسیار زیاد از همون ذخیره نشدن سورس کدها به صورت یونیکد هست. توی اون ویندوزهایی که درش مشکل دارید، وضعیت تنظیمات مربوط به Non-unicode applications را بررسی کنید.


از BDE برای کانکنت شدن به MYSQL استفاده می کنم
بیخیال BDE بشید، حتی در دلفی 7؛ برای اتصال به MySQL از dbExpress، یا ADO، و یا کامپوننت هایی که سایر شرکت ها برای این منظور ارائه کردند، استفاده کنید.

سعید صابری
چهارشنبه 05 مرداد 1390, 21:27 عصر
فکر کنم کامپوننت Mydac شرکت devart گزینه خوبی باشه.

h_mohamadi
پنج شنبه 06 مرداد 1390, 12:06 عصر
فکر کنم کامپوننت Mydac شرکت devart گزینه خوبی باشه.

آخه من اين را تست کردم و کلي داستان دارد و م بايد کل برنامه ام را عوض کنم نمي دانم مشکل از کجاست که فقط روي بعضي از ويندوزها اين مشکل را دارم

h_mohamadi
پنج شنبه 06 مرداد 1390, 13:09 عصر
مشکلتون به احتمال بسیار زیاد از همون ذخیره نشدن سورس کدها به صورت یونیکد هست. توی اون ویندوزهایی که درش مشکل دارید، وضعیت تنظیمات مربوط به Non-unicode applications را بررسی کنید.

اين که شما فرموده ايد را از کجا مي توانم تنظيم کنم؟؟؟؟

vcldeveloper
جمعه 07 مرداد 1390, 01:51 صبح
اين که شما فرموده ايد را از کجا مي توانم تنظيم کنم؟؟؟؟
Control Panel | Region and Language | Administrative | Language for non-Unicode programs | Change system locale

البته حواستون باشه که در ویندوزی که این مشکل را درش دارید، نباید تا قبل از تغییر این تنظیم، تغییری در اون سورس کد بدید، چون ذخیره سورس کد مربوطه در اون حالت میتونه موجب تغییر Code-page فایل متنی مربوطه بشه، و عملا نوشته های فارسی شما در داخل سورس کد قابل برگشت نباشند. در اون صورت باید بعد از اعمال این تنظیم، هر کدام از نوشته های فارسی موجود در سورس را مجددا تایپ کنید.