המרת (קידוד) טקסט מPHP לJS וחזרה
-
אני שולח נתונים מהקליינט לשרת, וכמו"כ בחזרה. כיון שיש סימנים שמשבשים את המעבר - כגון גרש (
'
) אני צריך להמיר את כל מחרוזת הטקסט לפני השליחה לקידוד כל שהוא ואח"כ להחזיר אותו לטקסט נורמלי.אני צריך להמיר ל2 הצדדים גם בjs וגם בphp. (כי צד הקליינט שלי js, וצד השרת - php. וצריך הלוך - חזור).
איזה קידוד מומלץ, ואם אפשר מראי מקומות לעשות את 4 ההמרות הנ"ל.
תודה.
-
@chagold כתב בהמרת (קידוד) טקסט מPHP לJS וחזרה:
ואם אפשר מראי מקומות לעשות את 4 ההמרות הנ"ל.
אם אתה ממיר ל JSON עם המתודה JSON.parse זה מטפל גם ב escaping
const str = '`"A"`'; const json = JSON.stringify({str}); console.log(json) // '{"str":"`\\"A\\"`"}'
תוכל להשתמש בפונקציה escape או encodeURI, שמטפלת בכל היוניקוד
// JS console.log(encodeURI('`"A"`)) // '%60%22A%22%60' console.log(decodeURI('%60%22A%22%60')) //'`"A"`' //PHP urlencode( '`"A"`'); // '%60%22A%22%60'' urldecode('%60%22A%22%60'); // '`"A"`'
-
@יוסף-בן-שמעון כתב בהמרת (קידוד) טקסט מPHP לJS וחזרה:
אם אתה ממיר ל JSON
...
תוכל להשתמש בפונקציה escape או encodeURI, שמטפלת בכל היוניקודמה רע בJSON? יש סיטואציה שבה אתה מבין שהוא לא נותן מענה?
-
@יוסף-בן-שמעון במבט שני אני רואה את הסיבה, כתבת בדוגמה:
const str = '`"A"`'; const json = JSON.stringify({str}); console.log(json) // '{"str":"`\\"A\\"`"}'
כלומר היית סבור שזה מתאים רק לאובייקטים.
אבל JSON טוב גם למחרוזות טקסט פשוטות/מספרים:JSON.stringify('`"A"`')
ובPHP:
json_encode('אחד');
-