אני משתמש בפונקציה simplexml_load_file על מנת לקבל נתונים מהאתר
הכל עובד יפה, עד שאני מנסה בעברית
הפונקציה הופכת אוטומטית את הטקסט העברי לאחוזים
למשל, אם אני מחפש אהוד בנאי, אני מקבל שגיאה
קוד PHP:
Warning: simplexml_load_file(http://gdata.youtube.com/feeds/api/videos/-/%E0%E4%E5%E3/%E1%F0%E0%E9) failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in .......
עשיתי למשתנה הכתובת כדי לברר שאכן יש עברית רגילה, ואני מקבל שנעשית קריאה לכתובת כראוי http://gdata.youtube.com/feeds/api/videos/-/אהוד/בנאי
מהכתובת הזו אפשר לקבל תוצאות טובות בנוגע לאהוד בנאי, בניגוד לכתובת שהפונקציה יוצרת עם האחוזים..
בתגובה להודעה מספר 1 שנכתבה על ידי shaharov שמתחילה ב "עברית נהפכת לאחוזים בקריאה ל simplexml_load_file"
א. הקידוד לפורמט שאתה מכנה "אחוזים" נחוץ - גם אם בדפדפן אתה לא רואה אותו, זה לא אומר שלא כך הוא נשלח לשרת
ב. רצוי לקודד לבד עם urlencode לפני השליחה לפונ' (למרות שבהחלט ייתכן שהיא עושה את זה לבד)
ג. השרת מצפה למידע בקידוד מסויים. האם המחרוזת שאתה ממיר לקידוד כתובת היא מסוג utf-8? אם לא, תעביר אותה קודם דרך iconv כך שתהיה utf-8.
בתגובה להודעה מספר 1 שנכתבה על ידי shaharov שמתחילה ב "עברית נהפכת לאחוזים בקריאה ל simplexml_load_file"
אחרי כמה נסיונות ומשחקים המרתי מ windows-1255 ל utf-8, עם iconv, זה עבד, וקיבלתי את כל התוצאות בג'יבריש.
בסוף הבנתי שברוב חכמתי שמתי מטא עם קידוד windows-1255 לדף עצמו. שיניתי ל utf-8, ועבד כמו שצריך, בלי המרות.