PDA

View Full Version : سوال در مورد utf-8 در asp



dayani
دوشنبه 14 مهر 1382, 09:58 صبح
با access 2000 بانکی ساخته ام. روی سیستم خودم با utf-8 درست کار میکنه ولی روی سرور درست نمایش نمیدهد اما اگر روی سرور به شکل online اطلاعات insert کنم درست جواب میدهه. هر کی میدونه مشکل کجاست لطفا جواب بده.

Vahid_Nasiri
دوشنبه 14 مهر 1382, 20:18 عصر
متاسفانه یکجایی در فرمایشات شما تناقض وجود دارد. چون سرور سرور است و نمی شود روی کامپیوتر شما درست باشد و ... روی هاست هم هنگام وارد کردن درست باشد و ...
اگر با ASP.NET‌ این مساله را مطرح می کردید قبول می کردم چون گاهی از اوقات تنها کافی است که یک صفحه در محیط VS.NET باز شود تا فارسی نویسی آن به هم بریزد (بدون اینکه شما چیزی متوجه شوید یعنی encoding سیو شدن آن).
خلاصه : تمام فایل هایی را که آپلود می کنید یکبار دیگر در نوت پد با فرمت utf-8 دوباره سیو از کنید و سپس آپلود کنید.

ASP-Rider
سه شنبه 29 مهر 1382, 00:38 صبح
خوب خدمت شما عرض کنم که این مشکل به علت اینه که Session.Codepage رو تعریف نکردین. یعنی چون رو کامپیوتر خودتون سیستم به طور پیش فرض روی فارسی و یونیکد تنظیم شده این مشکل پیش نمیاد ولی روی سرور چون پیشفرضش چیز دیگه ایه اینه که مشکل براتون پیش میاد ... راه حلش هم خیلی سادس. توی global.asa یه Session.Codepage=65001 اضافه کنین یا اینکه این خط رو بالای تمام صفحاتتون اصافه کنین :? مشکلتون حل میشه.

در زمینه فارسی کار کردن با ASP هر سوال دیگه ای هم که داشتین میتونین بپرسین.
قربان شما
-نوید خادم

RREZAA
چهارشنبه 28 آبان 1382, 15:32 عصر
باسلام
من از کلاس میل برای ارسال ایمیل در صفحاتم استفده میکنم همه چیز فارسیه ولی وقتی محتویات تکست باکس رو پست میکنم(به فارسی) همه کارکترها تبدیل میشه به ؟؟؟؟؟؟؟؟؟؟؟ یعنی وقتی ایمیل رو میبینم بجای کاراکترهای فارسی ؟؟؟؟؟؟؟ میبینم من ممنون میشم کسی راهنمایی کنه

nematia
چهارشنبه 28 آبان 1382, 18:13 عصر
اینا رو ادمین نوشته. نه من!
مشکل فارسی نویسی در بانک Access با ASP

شنبه، 22 شهریور، 1382
شاید شما برو بچ برنامه نویس ASP کلاسیک تا حالا به این مشکل برخورد کرده اید.

وقتی که اطلاعات رو از طریق یک صفحه ASP و با Submit کردن یک Form تو یه جدول ( Table ) بانک اطلاعاتی Access و یا SQL Server ذخیره میکنی , تو محیط خود این برنامه ها ( مثلا Datasheet جدولها تو اکسس و یا مشاهده رکوردهای جدول به وسیله Enterprise Manager برای SQL Server ) مقادیر ذخیر شده فارسی به صورت یه سری کدهای عجیب قریب دیده میشه و قابل خواندن نیست. و اگر هم تو محیط خود این برنامه مقداری رو برای یه فیلد فارسی وارد کنید , اونوقت تو نمایش این فیلد تو صفحه ASP علامت سئوال ( ؟ ) دیده میشه. البته این صفحات ASP به صورت Arabic 1256 و یا UTF-8 هم بودن . یعنی در حقیقت Code Page سمت Client آنها به صورت درست تنظیم شده. و جالب اینجا ست که نمایش رکوردهای همین اطلاعات ناخوانا توسط یه صفحه ASP , کاملا درست و خوانا هست و فارسی دیده میشه و جستجو هم تو این فیلدهای فارسی درست انجام میشه پس ظاهرا شما فکر میکنید که نباید مشکلی باشه . :--)

اما اینطور نیست و این مشکل خیلی برای من درد سر بود. چون گاهی اوقات پیش میومد که مدیر سایت میخواست اطلاعات رو غیر از طریق وب هم بتونه Update کنه . مثلا Database سایت رو که یه MDB هست ( یعنی بانک اکسس ) قبل از Upload کردن تو سایت , اول با یه برنامه که با تو محیط غیر وب ( مثلا با VB یا خود اکسس ) نوشته شده وارد کنه . خوب اونوقت بود که این اطلاعات وارد شده تو صفحات وب سایت علامت سئوال میومد. برای همین هم من مجبور شده بودم که یه Converter بنویسم که این مشکل رو حل کنه. خلاصه یه دو سالی سر کار بودم و کلی هم به مایکروسافت بدوبیراه گفتم که دیگه تا چه وقت باید ما با این فارسی و مایکروسافت مشکل داشته باشیم.

تا اینکه برای انجام دادن این سایت آخری ( البته هنوز آخرین نسخه ای که من برنامه نویسی کردم رو سایت نیست ) باز هم همین مشکل رو داشتم و قرار بود که اون مبدل به کمک بیاد. اما دکتر رضوی که سفارش دهنده کار بود و خودش هم در ASP دستی بر آتش دارد , به یک نکته برخورد کرد و این معضل رو برای همیشه حل کرد. خدا یک در دنیا و صد تا دیگه هم تو همین دنیا و آخرت بهش بده. :--)

نکته اینه که , غیر از این که باید صفحات شما سمت Client با قرار دادن

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

و یا

<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">

در داخل Source صفحات قابلیت نمایش به صورت فارسی رو پیدا کنه , بلکه باید این یه خط کد جادوئی رو هم تو بالای تمام صفحاتی که قراره یه سری دیتای فارسی برای ذخیره تو بانک اطلاعاتی Submit کنه هم قرار بدید تا اطلاعات شما در سمت سرور هم به صورت Unicode شناخته شود. اون خط کد جادوئی که دوساله من رو سر کار گذاشته اینه :

<%
Session.CodePage = 65001
%>

ضمنا مسئله مشکل Sort درست فارسی هم با این روش کاملا حل شده و تمام حروف فارسی درست مرتب میشن.
هرگز از این یه خط کد غافل نشید :--)

hojjat_sekhavati
پنج شنبه 29 آبان 1382, 15:40 عصر
سلام

آیا در دات نت هم این Sesion.CodePage لازمه؟

یا تنظیمات بخش globalization فایل وب دات کانفیگ کار همون رو میکنه؟

thx in advance

Vahid_Nasiri
پنج شنبه 29 آبان 1382, 16:01 عصر
خیر لازم نیست. مطلبی که شما فرمودید کفایت می کند + به تاپیک مهم بالای بخش هم در این زمینه رجوع نمایید.

RREZAA
شنبه 01 آذر 1382, 11:37 صبح
باسلام
کسی نیست که بتونه منو راهنمایی کنه!!!؟؟؟


من از کلاس میل برای ارسال ایمیل در صفحاتم استفده میکنم همه چیز فارسیه ولی وقتی محتویات تکست باکس رو پست میکنم(به فارسی) همه کارکترها تبدیل میشه به ؟؟؟؟؟؟؟؟؟؟؟ یعنی وقتی ایمیل رو میبینم بجای کاراکترهای فارسی ؟؟؟؟؟؟؟ میبینم من ممنون میشم کسی راهنمایی کنه
از این کد هم استفاده کردم فایده نداشت!<% Session.CodePage = 65001 %>
کدپیج صفحه من هم یونیکده بابا یکی راهنمایی کنه :(