דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ENCODING ללא ירידת שורה

ENCODING ללא ירידת שורה

מתוזמן נעוץ נעול הועבר תכנות
19 פוסטים 4 כותבים 706 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ש מנותק
    ש מנותק
    שאול נ"י
    כתב ב נערך לאחרונה על ידי
    #1

    כשאני עשה ENCODE אני מקבל את הטקסט עם ירידת שורה בסוף
    למה זה? והאם יש אפשרות שלא?

    ב. אם אין אפשרות שלא, האם ניתן להחליף את כל המילים הרלוונטיות חוץ מהאחרון, ולהחליף את האחרון במשהו אחר?

    yossizY תגובה 1 תגובה אחרונה
    0
    • yossizY מנותק
      yossizY מנותק
      yossiz
      השיב לשאול נ"י ב נערך לאחרונה על ידי
      #2

      @שאול-נ-י לא הצלחתי לנחש על איזה שפה אתה מדבר

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

      ש תגובה 1 תגובה אחרונה
      3
      • ש מנותק
        ש מנותק
        שאול נ"י
        השיב לyossiz ב נערך לאחרונה על ידי
        #3

        @yossiz זה משנה?
        אני מנסה בJS,
        כתבתי let res = encodeURI(content);
        ואני מקבל עם '%0D%0A'

        yossizY תגובה 1 תגובה אחרונה
        0
        • yossizY מנותק
          yossizY מנותק
          yossiz
          השיב לשאול נ"י ב נערך לאחרונה על ידי
          #4

          @שאול-נ-י לדעתי אתה מעביר מחרוזת שיש בו כבר ירידת שורה. הפונקציה לא אמורה להוסיף ירידת שורה וגם בבדיקה פשוטה בקונסול זה לא מוסיף.

          @שאול-נ-י אמר בENCODING ללא ירידת שורה:

          זה משנה?

          כן. תמיד.
          האמת שבמקרה הזה לא היה עוזר השפה כי לא הבנתי בכלל מה זה ENCODING. אולי אני קשה הבנה. היית צריך לכתוב במילואו: encodeURI.

          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

          ש תגובה 1 תגובה אחרונה
          6
          • ש מנותק
            ש מנותק
            שאול נ"י
            השיב לyossiz ב נערך לאחרונה על ידי
            #5

            @yossiz אמר בENCODING ללא ירידת שורה:

            לדעתי אתה מעביר מחרוזת שיש בו כבר ירידת שורה.

            לא מה שאני יודע
            (אולי אתה יודע, אם בג'ימייל, זה מגיע עם ירידת שורה בסוף)

            @yossiz אמר בENCODING ללא ירידת שורה:

            הפונקציה לא אמורה להוסיף ירידת שורה וגם בבדיקה פשוטה בקונסול זה לא מוסיף.

            אז מה אני עושה שזה כן מוסיף?

            yossizY תגובה 1 תגובה אחרונה
            0
            • yossizY מנותק
              yossizY מנותק
              yossiz
              השיב לשאול נ"י ב נערך לאחרונה על ידי
              #6

              @שאול-נ-י תדפיס את המחרוזת לאנשהו לפני שאתה מעביר אותו לפונקציה. תראה בעצמך.

              📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

              ש תגובה 1 תגובה אחרונה
              2
              • ש מנותק
                ש מנותק
                שאול נ"י
                השיב לyossiz ב נערך לאחרונה על ידי
                #7

                @yossiz הרי זה מה שניסיתי לפני ששאלתי
                הנה מה שקבלתי HELLO%0D%0A

                yossizY תגובה 1 תגובה אחרונה
                0
                • yossizY מנותק
                  yossizY מנותק
                  yossiz
                  השיב לשאול נ"י ב נערך לאחרונה על ידי
                  #8

                  @שאול-נ-י אמר בENCODING ללא ירידת שורה:

                  הנה מה שקבלתי HELLO%0D%0A

                  זה מה שאתה מקבל אחרי encodeUri. תדפיס את המחרוזת לפני שאתה מעביר אותו לפונצקיה כדי לאמת שמעבר השורה הייתה קיימת כבר לפני.

                  למעשה יש לי רעיון יותר טוב:

                  let res = encodeURI(content.trim());
                  

                  📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                  ש תגובה 1 תגובה אחרונה
                  3
                  • ש מנותק
                    ש מנותק
                    שאול נ"י
                    השיב לyossiz ב נערך לאחרונה על ידי
                    #9

                    @yossiz אמר בENCODING ללא ירידת שורה:

                    זה מה שאתה מקבל אחרי encodeUri

                    בדקתי, לא היה ירידת שורה לפני האינקוד,
                    אבל עם זה let res = encodeURI(content.trim()); זה עובד
                    אבל עכשיו אני מנסה לשלוח מחרוזת שיש בה ירידת שורה באמצע, והוא לא נותן לי ככה %0D%0A וגם לא כך n/

                    yossizY A 2 תגובות תגובה אחרונה
                    0
                    • yossizY מנותק
                      yossizY מנותק
                      yossiz
                      השיב לשאול נ"י ב נערך לאחרונה על ידי yossiz
                      #10

                      @שאול-נ-י אמר בENCODING ללא ירידת שורה:

                      בדקתי, לא היה ירידת שורה לפני האינקוד,
                      אבל עם זה let res = encodeURI(content.trim()); זה עובד

                      🤔
                      אני נוטה להאמין למחשב יותר ממך...
                      (העובדה ש-trim עזר מוכיחה שצדקתי והיה ירידת שורה במחרוזת)

                      אבל עכשיו אני מנסה לשלוח מחרוזת שיש בה ירידת שורה באמצע, והוא לא נותן לי ככה %0D%0A וגם לא כך n/

                      תביא קוד לדוגמה. אצלי המחשב מתנהג טוב.

                      encodeURI('123\r\n456')
                      // '123%0D%0A456'
                      

                      נ.ב. שים לב שלפעמים הפוקנציה הנכונה היא היא encodeUriComponent ולא encodeUri. ההבדלים, עיין בתיעוד.

                      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                      ש תגובה 1 תגובה אחרונה
                      4
                      • ש מנותק
                        ש מנותק
                        שאול נ"י
                        השיב לyossiz ב נערך לאחרונה על ידי
                        #11

                        @yossiz סליחה, שוב לא הסברתי את עצמי טוב
                        אחרי ה-encode אני מנסה לשלוח את זה לAPI אבל הAPI לא מוכן לקבל את זה
                        זה השגיאה {"responseStatus":"EXCEPTION","exceptionClass":"IllegalArgumentException","exceptionMessage":"Cannot parse JSON: Illegal unquoted character ((CTRL-CHAR, code 13)): has to be escaped using backslash to be included in string value\n at [Source: java.io.StringReader@21b03df3; line: 1, column: 41]","nestedException":null,"yemotAPIVersion":6}
                        ניסיתי לשנות ל n\ אז הוא אומר לי Invalid argument

                        yossizY תגובה 1 תגובה אחרונה
                        0
                        • yossizY מנותק
                          yossizY מנותק
                          yossiz
                          השיב לשאול נ"י ב נערך לאחרונה על ידי yossiz
                          #12

                          @שאול-נ-י ידידי...

                          אדם שרוצה להתעסק בתכנות חייב להיות מרובע.
                          לא סתם מרובע אלא עם פינות קוצניות שדוקרים לכל מי שנוגע.
                          יותר מרובע מריבוע.

                          למה?
                          כי המחשב מרובע.
                          המחשב יותר מרובע מריבוע.
                          כמו הגולם המיתלוגי, המחשב עושה בדיוק מה שביקשנו ממנו. לא פחות ולא יותר.
                          כמו היקי הכי מעצבן ביקום. (מחילה מכל היקים...).

                          כחלק ממרובעות הזאת אתה חייב לדייק בתכלית הדיוק בכל מה שנוגע למחשבים. הם לא סלחניים בקיצוניות.

                          תדמיין לעצמך שיש לך חבר שהוא יקי מעצבן כזה. האם היית מעז לדבר איתו רמזים וחצאי משפטים???

                          אחרי ההקדמה אני רוצה להסביר לך שכאשר אני קורא שאלה בנושא תכנות אני קורא את השאלה כמו מחשב.
                          כתבת:

                          עכשיו אני מנסה לשלוח מחרוזת שיש בה ירידת שורה באמצע, והוא לא נותן לי ככה %0D%0A וגם לא כך n/

                          ניסיתי לענות על זה לפי איך שהבנתי את השאלה. טעיתי בהבנת השאלה. הייתי אמור לנחש מה זה "מנסה לשלוח"? לאן? איך? "והוא לא נותן לי". מי זה ה"הוא"? "ככה %0D%0A וגם לא כך n/" כלומר שניסית ככה? או שה"הוא" לא נותן לך את ה"ככה"?

                          גם ההבהרה שאתה מוסיף בפוסט השני לא מספיקה.

                          לא מספיק לכתוב מה השגיאה.
                          כדי ששום בר דעת יהיה מוכן לענות על השאלה בלי להסתכן בניחושים מיותרים וגוזלי זמן, הוא חייב לקבל פרטים מלאים עד כמה שידך מגעת.
                          שזה אומר:

                          • בדיוק מה עשית
                          • מה צפית שיקרה
                          • מה קרה בפועל

                          וכל הנ"ל בכתיבה ברורה שלא משתמעת לשתי פנים

                          השאלות הכי טובות הם אלו שכוללים קוד קצר וקולע שמדגים את הבעיה.

                          (אגב, בנוסף, חוץ ממה שאתה חייב לכתוב את כל מה שקשור לנושא, יש גם דרישה לא לכתוב שום דבר מעבר למה שקשור.
                          הדרישה של "לא שום דבר מעבר" הוא כמעט באותה רמת חשיבות כמעט כמו הדרישה לכתוב את כל הפרטים.
                          חייבים להפשיט את השאלה מכל המסביב שלא קשור לענין.
                          האמת היא שאם היית קונה לעצמך את היכולת הזאת לדייק כל כך בשאלות שלך, לכאורה היית מגיע לתשובות בכוחות עצמך. כי היית מצליח למקד בדיוק איפה הבעיה.)

                          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                          ש תגובה 1 תגובה אחרונה
                          10
                          • ש מנותק
                            ש מנותק
                            שאול נ"י
                            השיב לyossiz ב נערך לאחרונה על ידי
                            #13

                            @yossiz תודה
                            אני אנסה להסביר את עצמי למרות שאחד מהתכונות שלי הוא קושי בהסברה (לכל אדם יש חסרונות, לא?) וגם קושי בהבנה...

                            בשאלות הראשונות שלי היה לי שאלה שאני מקבל את הקוד עם ירידת שורה בסוף
                            על זה עדיין לא קיבלתי תשובה סופית,
                            אתה טענת שצריך לומר שהיה במקור ירידת שורה, אבל אני ניסיתי לשלוח מייל לעצמי עם מילה אחד שאז בוודאי לא ירדתי שורה אבל לאחר שעשיתי ENCODE קיבלתי את המילה עם סימן ירידת שורה בסוף המילה, כזה "%0D%0A"
                            אז אולי צריך לומר שבכל ג'ימייל שאני שולח יש בסוף שורה ריקה🤔 או שגם זה לא?

                            אחרי זה כשאמרת לי להשתמש עם content.trim() הסתדר השורה חדשה בסוף
                            ואז עברתי לשלב הבא שרציתי, וזה לשלוח את הטקסט מהמייל לאחר שעבר ENCODE ואז נתקלתי בבעיה האמיתית, ה-API שאיליו אני רוצה לשלוח את הטקסט מהמייל לאחר שעשיתי ENCODE לא מרשה לי לשלוח לו טקסט עם ירידת שורה באמצע

                            אז האמת שזה כבר נושא חדש, איך לשלוח טקסט כזה, אבל אצלי זה היה הכל פונקציה אחת אז שאלתי באותו נושא

                            אז יש לי שאלה, האם זה שה-API לא נותן לי לשלוח טקסט שלם שיש בתוכו כמה שורות זה קשור לAPI וצריך לדעת איך לשלוח לה-API הספיציפי,
                            או שזה בכלל קשור לזה שזה JSON

                            פשוט כדי שאני אדע מה לשאול..

                            dovidD yossizY 2 תגובות תגובה אחרונה
                            1
                            • dovidD מנותק
                              dovidD מנותק
                              dovid ניהול
                              השיב לשאול נ"י ב נערך לאחרונה על ידי dovid
                              #14

                              @שאול-נ-י אתה מעביר בסופו של דבר לAPI שלך טקסט שלא עבר encodeURI. אין בפלט של encodeURI שום קפיצת שורה, לא בסוף וגם לא באמצע.
                              ומתחיל להימאס השאלה בלי לחשוף כלום (סליחה שאני לא קונה את הקושי בהסברה ואת חסרונותיך וכולי), אנחנו נאבד את הסבלנות אליך גם לשאלות הבאות.

                              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                              בכל נושא אפשר ליצור קשר dovid@tchumim.com

                              תגובה 1 תגובה אחרונה
                              1
                              • yossizY מנותק
                                yossizY מנותק
                                yossiz
                                השיב לשאול נ"י ב נערך לאחרונה על ידי yossiz
                                #15

                                @שאול-נ-י אמר בENCODING ללא ירידת שורה:

                                על זה עדיין לא קיבלתי תשובה סופית,

                                לדידי התשובה היא סופית 🙂 אני לא רואה אפשרות אחרת.

                                אז אולי צריך לומר שבכל ג'ימייל שאני שולח יש בסוף שורה ריקה

                                אולי

                                בכל מקרה לשאלה השנייה:

                                ה-API שאיליו אני רוצה לשלוח את הטקסט מהמייל לאחר שעשיתי ENCODE לא מרשה לי לשלוח לו טקסט עם ירידת שורה באמצע

                                אם תדייק בנוסח השגיאה תראה שלא שלחת JSON תקין. זה לא שה-API בודק ירידות שורות. הוא בודק סה"כ אם ה-JSON תקין או לא.
                                דוגמה למחרוזת JSON עם ירידת שורה בתוך קוד JS:

                                JSON.parse('{ "string_with_linebreak": "abc\\nefg" }');
                                // {string_with_linebreak: 'abc\nefg'}
                                

                                שים לב שהייתי צריך להוסיף לוכסן פעמיים. (הבנת למה?)

                                אם תביא דוגמת קוד נוכל להבין יותר בקלות איפה נכשלת.

                                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                                dovidD תגובה 1 תגובה אחרונה
                                3
                                • dovidD מנותק
                                  dovidD מנותק
                                  dovid ניהול
                                  השיב לyossiz ב נערך לאחרונה על ידי
                                  #16

                                  @yossiz הבנת מה הוא רצה עם ג'מייל? ואני תמיד חשבתי שאני יותר טוב ממך בלהבין אנשים.

                                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                  yossizY תגובה 1 תגובה אחרונה
                                  1
                                  • yossizY מנותק
                                    yossizY מנותק
                                    yossiz
                                    השיב לdovid ב נערך לאחרונה על ידי yossiz
                                    #17

                                    @dovid אמר בENCODING ללא ירידת שורה:

                                    הבנת מה הוא רצה עם ג'מייל?

                                    לא בטוח... אני מנחש שהוא עובד עם app scripts של גוגל.

                                    @שאול-נ-י שים לב, שהשאלות שלך מאוד קשים להבנה. @dovid צודק שהוא יותר טוב ממני, ולא רק בזה... ועדיין הוא לא מצליח לפענח את השאלה שלך.
                                    בד"כ קשיי הסברה מגיעים מעמעום בהבנה. אם תרצה להצליח בעולם הזה של תכנות כדאי לך מאוד לחדד את ההבנה שלך בנושאים ולא סתם להעתיק קוד בלי להבין.
                                    המחשבה על כתיבת כמה שורות של קוד ובכך לבנות אוטומציה שלמה מאוד מאוד מושכת. ואחרי לימוד יסודי באמת אפשר להגיע לדברים מדהימים מאוד שבעבר יכלו רק לחלום עליהם. אבל אל תתן לחזון של היעד להסתיר ממך את הכביש שמוליך לשם. זה מגיע רק עם עבודה יסודית. אחרת תתקע בכל צעד ושעל.

                                    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                                    תגובה 1 תגובה אחרונה
                                    6
                                    • A מנותק
                                      A מנותק
                                      avi rz
                                      השיב לשאול נ"י ב נערך לאחרונה על ידי avi rz
                                      #18

                                      @שאול-נ-י אמר בENCODING ללא ירידת שורה:

                                      בדקתי, לא היה ירידת שורה לפני האינקוד,

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

                                      תגובה 1 תגובה אחרונה
                                      1
                                      • ש מנותק
                                        ש מנותק
                                        שאול נ"י
                                        כתב ב נערך לאחרונה על ידי
                                        #19

                                        אני חושב שיש צורך שאתנצל בפני חברי הפורום היקרים כ"א בשמו הטוב יבורך ובפרט ל@yossiz ול@dovid שגזלו מזמנם היקר לענות לי על השאלות ברצון טוב לעזור..
                                        בו בזמן שכמו ש@yossiz אמר

                                        @yossiz אמר בENCODING ללא ירידת שורה:

                                        בד"כ קשיי הסברה מגיעים מעמעום בהבנה.

                                        וזה אכן היה המקרה שלי.

                                        אני בכל זאת אנסה להסביר מה קרה לי פה
                                        אני רציתי לשלוח בAPI טקסט מסיום שהיה צריך לעבור encodeURI לפני השליחה, אז השתמשתי בencodeURI בשרת (app scripts של גוגל) אבל מה, בפלט של השרת כשהגיע לירידת שורה הוא תירגם את זה ל '%0D%0A' ומצד שני השרת API שקיבל את הJSON לא רצה לקבל את זה וטען שזה לא תקין
                                        אז אני, במקום לחשוב איך לתקן את זה ולשאול שאלה ספציפית😧, רציתי לעקוף את הבעיה ע"י לא לתת לו לרדת שורה, וחשבתי שכך הבעיה תסתדר, ואת זה שאלתי פה בפורום איך לעשות שלא יהיה ירידת שורה.
                                        אבל מה? בסוף הבנתי שיש פעמים שאני חייב לשלוח כמה שורות, ולא יעזור לי לעשות פתרונות כאלו, אז ערבבתי את הנושא והתחלתי לשאול איך כן לשלוח את הAPI תקין, ולא הבנתי ולא הובנתי

                                        בסוף עשיתי replace מ '%0D%0A' ל '%5C%5Cn' ואז הכל הסתדר, אבל שוב, סליחה מכל אלו שניסו לעזור ככל יכולתם ולא אפשרתי להם
                                        (נ.ב. מקווה שהפוסט הזה כן מובן)

                                        תגובה 1 תגובה אחרונה
                                        4
                                        • dovidD dovid העביר נושא זה מ-תכנות ב-

                                        בא תתחבר לדף היומי!
                                        • התחברות

                                        • אין לך חשבון עדיין? הרשמה

                                        • התחברו או הירשמו כדי לחפש.
                                        • פוסט ראשון
                                          פוסט אחרון
                                        0
                                        • דף הבית
                                        • קטגוריות
                                        • פוסטים אחרונים
                                        • משתמשים
                                        • חיפוש
                                        • חוקי הפורום