تشخیص اینکودینگ

mosi20

Active Member
سلام
من یه مشکلی در خواندن rss پیدا کردم
یه سری را درست میاره اما یه سری را به شکل زیر میاره
فراخوان جشنواره بين المللي نداي وحدت ((اتحاد ملي ، انسجام اسلامي))
کسی میدونه نوع اینکودینگ این چیه و چجوری میشه درستش کرد؟
یا چجوری میشه اینا یه کاریش کردم که قابل خوندن بشه.
اینکودینگ صفحات من UTF8 هستش
 

milads

Banned
چون rss بر مبنای XML کار می کنه شما encoding فایل xml هم به UTF-8 تغییر بده .
PHP:
<?xml version="1.0" encoding="utf-8" ?>
فکر نمی کنم دیگه مشکلی باشه .
موفق باشی .
 

mosi20

Active Member
عزیز دل برادر
من که rss را نمی سازم.
من فقط میخوام rss را بخونم.
در ضمن تا اونحا که من دیدم rss مورد نظر من این کد را هم داره.
 

mosi20

Active Member
کسی تا حالا به این مشکل برنخورده؟
اینکودینگ این چیه؟

فراخوان جشنواره بين المللي نداي وحدت ((اتحاد ملي ، انسجام اسلامي
 

hidensoft

Member
بله . من با این مشکل مواجه شدم ، و با تغییر یونی کد به Utf-8 مشکل حل شد . مطمئنا شما یک جایی از Ansi استفاده کردی یا به صورت پیش فرض Ansi بوده شما به Utf-8 تغییرش ندادی .
موفق باشید
 

meysamz

Member
باید یونیکد تمام صفحات و فایل هایی که اینکلود شدن هم Utf-8 کنی، البته از نوع 65001.
 

mosi20

Active Member
سلام
منظورت از البته از نوع 65001 چیه؟
چجوری میتونم این مدلی ذخیره کنم؟
 

jhoseini

Member
شما بالاخره با یه تیکه کد از این rss میخونی دیگه
اون تیکه کد رو اینجا بزار تا باه حل بدیم
یه نمونه که درست کار میکنه گزاشتم
 

پیوست ها

  • rssReader.rar
    20.2 کیلوبایت · بازدیدها: 4

meysamz

Member
mosi20 جان مشکلت این هست که صفحات شما یونیکد نیست. البته دلیل های دیگه ای هک می توانه داشته باشه.
اما همیشه اولین کار اینه که صفحات را یونیکد کنید.
حالا UTF-8 چند نوع هست:
1UTF-8 with signature : 65001
UTF-8 codepage : 1200
Unicode big endian :1201
UTF-8
برای مثال تو .NET معمولا 1200 بهتر جواب می ده، تو ASP Classic و PHP
65001 بهتر جواب می ده و در HTML
UTF-8 بهتر جواب می ده. برای تغییر هم می توانی از فرانت پیج ، اکسپرشن وب، ویژوال استودیو این قابلیت را دارند.
البته از این خط هم می توانی استفاده کنی که در موقع اجرا صفحات را تبدیل می کنه:

<meta http-equiv="Content-Type" content="text/html; charset=65001">
امیدوارم توانسته باشم کمتون کنم.
 

mosi20

Active Member
ببینید دوستان فکر کنم اشتباه متوجه شدید.
من به 2 صورت rss را میخونم
یکی اینکه خود فایل get_rss.php را مستقیم آدرسش را بونیسم و بره و بخونه
یا اینکه همین فایل را کردون جاب cronjob اجرا کنم.
وقتی از روش اول میرم همه چیز درسته
ولی وقتی از کرون جاب استفاده میکنم بعضی از rss ها اینکودینگش به هم میریزه.
 

hba

Active Member
توي ديتابيس ميريزي اينو بزن
SET NAMES 'utf8'
توي فايل Cron استفاده مي كني ايينو بزار

PHP:
header('Content-Type: text/xml, charset=utf-8');

شايد درست شه
 

جدیدترین ارسال ها

بالا