سلام
این سایتنوع charset رو مشخص نکرده ولی محتویات سایت که فارسی هم هست درست نشون داده میشه.دلیلش چیه؟یعنی مرورگر احتیاجی به این مساله نداره یا اینکه از جای دیگه متوجه میشه؟کد:www.tsetmc.com
سلام
این سایتنوع charset رو مشخص نکرده ولی محتویات سایت که فارسی هم هست درست نشون داده میشه.دلیلش چیه؟یعنی مرورگر احتیاجی به این مساله نداره یا اینکه از جای دیگه متوجه میشه؟کد:www.tsetmc.com
این با asp تنظیم کرده نوع charset رو
یعنی تگ html ی واسه اینکار لازم نیست؟میشه یه کم بیشتر توضیح بدید یا لینک یه مطلب بدید که من در این مورد بیشر اطلاعات کسب کنم.خیلی ممنوننقل قول:
کلا این سایت بر خلاف تفکر شما از encoding استفاده میکنه
[HTML]<meta http-equiv="Content-Type" content="text/html; charset=utf-8">[/HTML]
اما کلا این یه راهه با asp.net 4
کد:http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx
خوب اولا تایین کرده ایناهاش :نقل قول:
[PHP]
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
[/PHP]
دوما مرور گر ها معمولا اگه چارست تعیین نشده باشه , بصورت اتوماتیک سعی میکنن نوع انکودینگ رو حدس بزنن , بخاطر همین بعضی وقت ها ممکنه موفق بشن بعضی وقت ها نه !!
معذرت می خوام.من آدرس صفحه اولش رو زدم.این صفحه هم مال همون سایته که نداره.فکر کنم فقط صفحه اولش encoding رو مشخص کرده.نقل قول:
خوب اولا تایین کرده ایناهاش :
کد:http://www.tsetmc.com/loader.aspx?ParTree=111C1412&inscode=5395621754041380
تو منو قسمت انکودینگ نگاه کنید , میبینید نوشته automatic selection
یعنی خودش تشخیص میده از رو محتوای صفحه !
دوست من همچنین امکان داره از .htaccess استفاده کرده باشه که شما نمیتونی ببینیش
اصلاً این تگ انکودینگ که توی HTML استفاده میشه جایگزین هدر Content-Type هست که از سرور ارسال میشه. فرقی هم نداره که چه زبانی در سرور به کار رفته باشه چون همه زبانهای تحت وب این امکان رو دارند که هدرها رو دستکاری کننده
یعنی اینکه مرورگر اول هدر Content-Type رو در پاسخ دریافتی از سرور چک میکنه. اگر اون وجود نشده باشه متا تگ رو چک میکنه میکنه اگر اون هم وجود نداشته باشه دیگه مرورگر انتخاب میکنه چه انکودینگی استفاده بشه
به این می گن جواب.البته باقی دوستان هم کمک کردن ولی این اون چیزیه که دنبالش بودم.با این حساب اگر بتونم هدر http رو یه جوری بخونم مشکلم حله دیگه؟راهی نداره که غیر از کد نویسی بشه این مساله رو حل کرد؟یعنی بفهمم که hencoding اون صفحه چیه؟نقل قول:
الان با یه کد php هدر http رو گرفتم.این اطلاعات رو داده که توش زده encoding ش utf-8 ولی من موندم که این چه جور utf ی که با هیچ برنامه ای نمیشه خوندش.با جاوا و پی اچ پی امتحان کردم.فقط مونده خوده asp که اونم بلد نیستم.
[0] => HTTP/1.1 302 Found
[1] => Date: Fri, 20 May 2011 06:20:37 GMT
[2] => Server: Microsoft-IIS/6.0
[3] => X-Powered-By: ASP.NET
[4] => Content-Encoding: gzip
[5] => Location: /GeneralError.aspx?aspxerrorpath=/loader.aspx
[6] => Cache-Control: private
[7] => Content-Type: text/html; charset=utf-8
[8] => Content-Length: 170
[9] => Connection: close
[10] => HTTP/1.1 200 OK
[11] => Date: Fri, 20 May 2011 06:20:37 GMT
[12] => Server: Microsoft-IIS/6.0
[13] => X-Powered-By: ASP.NET
[14] => Set-Cookie: ASP.NET_SessionId=yiiwszfuqrukmbq5xykivnew; path=/; HttpOnly
[15] => Cache-Control: private
[16] => Content-Type: text/html; charset=utf-8
[17] => Content-Length: 717
[18] => Connection: close
متوجه نمیشم منظورتون از با هیچ برنامه ای نمیشه خوند چیه!
اگر منظورتون html و جاوا اسکرپت هست که در این موارد هدرها رو فقط مرورگر میخونه و فکر نمیکنم به جاواسکرپت پاس بده. مگر اینکه با ای جکس صفحه رو دوباره لود کنید
در هر حال صفحه ای که داده بودید این هدر ها رو در پاسخ داره:
کد:HTTP/1.1 200 OK
Date: Fri, 20 May 2011 06:53:23 GMT
Server: Microsoft-IIS/6.0
Content-Encoding: gzip
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 11422
عزیزان ما برای صفحات html دو تا هدر داریم .
یکی هدر اصلی فایل هس که فقط توسط مرورگر خونده میشه و تشخیص میده که فایل دریافتی html هس و انکدینگشم utf8 .
یک هدر دیگه هم در داخل فایل html وجود داره که اونم توسط مرورگر خونده میشه ولی اولویت با هدر اصلی فایل هس و بعدش اگه در هدر داخلی فایل اینکدینگ وجود داشت ، این اینکد مدنظر قرار میگیره .
پس خواهشا این دو تا هدر رو با هم اشتباه نگیرین .