שלח תשובה

זירת השאלות

1239
צפיות
6
תשובות

חלופה לפונקציה encodeURIComponent ?

,‏ 27 בינואר, 2007

שלום לכולם!

הבעיה היא כזאת:
אני רוצה בעזרת האוביקט xmlhttprequest לשלוח נתונים לשרת ולקבל ממנו תשובה.
את הנתונים שיישלחו אני מקבל כקלט מתיבת טקסט, זאת ללא הגבלה של סוגי התווים המותרים.
כלומר ~!@#!$ו#^%*)6ח5ק'-/&*_(*)+_ זה גם קלט חוקי מבחינתי וברצוני לשלוח אותו לשרת.
אז חיפשתי פונקציה מתאימה ב- JS שמקודדת את התווים בדומה ל- URLEncode ב- ASP, ומצאתי את הפונקציה encodeURIComponent. הבעיה היא שהפונקציה לא עובדת ב- IE5 ולכן היא מגבילה את האתר לעבוד רק בגרסה 5.5 ומעלה של IE וזה לא מתאים לי.

ניסיתי לחפש בגוגל חלופות לפונקציה encodeURIComponent אך ללא הצלחה.
ניסיתי לכתוב פונקצית קידוד בעצמי בעזרת charCodeAt אבל היא מחזירה איזשהו מספר גדול מ-255 עבור תווים בעברית ולכן גם היא לא מתאימה לי.

אשמח לקבל פתרון לעניין.
תודה מראש!

תגיות:

6 תשובות

  1. RiU הגיב:

    נשלח בטעות..
    אבל יש את הפונקציה


    server.urlencode(string)

  2. נכון, אני מחפש את המקביל ב- JS ש
    שיעבוד גם ב- IE 5 תחת Windows 98

  3. RiU הגיב:

    לפי מה שקראתי
    לא, אין דרך נכונה לעשות את זה ב אקספלורר 5 בצד לקוח.. רק מגירסא 5.5 ומעלה
    באקספלורר 5 יש את הפונקציה escape אבל היא לא תעבוד כמו שצריך עם xmlhttprequest

    קישור ל MSDN

  4. תודה בכל אופן,
    אז מה הקטע שיש xmlhttprequest ב- ie5 אם אין שם את הפונקציה encodeURIComponent? על מה מיקרוסופט בדיוק חשבו?

    אוףףףף איתם, חיים קשים עושים למפתחים…

  5. ניר טייב הגיב:

    תכתוב פונקציה כזו
    זה לא כלכך קשה, תשתמש ב-regex ובמתודה toString כדי להפוך תווים שאסורים בכתובת לבסיס 16.

    yourString.replace(regexHere, function(sMatch){
    return sMatch.toString(16);

שלח תשובה