URL을 공백으로 (정상적으로) 사용했을 때 붙여넣은 URL과 문자가 제대로 처리되지 않음

Pasted URLs in Rich Text Editor improperly escape tilde character 게시글에서 이어지는 토론입니다:

재현 방법:

위에 있는 URL을 편집기에 붙여넣어 입력했습니다:
https://frinklang.org/fsp/solve2.fsp?equations=a+%3D+3+b+%2B+c&solveFor=&f=&ev=on&sel_a=S&val_a=&sel_b=S&val_b=&sel_c=L&val_c=299792458+m+s%5E-1&resultAs=
링크를 클릭했을 때의 정상적인 응답은 다음과 같습니다:

하지만 Discourse에서 렌더링된 해당 URL은 다음과 같습니다:
https://frinklang.org/fsp/solve2.fsp?equations=a%2B%3D%2B3%2Bb%2B%2B%2Bc&solveFor=&f=&ev=on&sel_a=S&val_a=&sel_b=S&val_b=&sel_c=L&val_c=299792458%2Bm%2Bs%5E-1&resultAs=

+ 문자가 %2B로 대체된 것을 주목해 주세요. 이로 인해 실패하며 다음과 같은 결과가 생성됩니다:

하이퍼링크 도구 테스트:

Discourse-Made-Hyperlink

Discourse 링크 도구에서 렌더링된 URL:
https://frinklang.org/fsp/solve2.fsp?equations=a%2B%3D%2B3%2Bb%2B%2B%2Bc&solveFor=&f=&ev=on&sel_a=S&val_a=&sel_b=S&val_b=&sel_c=L&val_c=299792458%2Bm%2Bs%5E-1&resultAs=

이것도 실패하며, 다음과 같이 보입니다:

정확히 무엇이 잘못되고 있는지 100% 확신하지는 못하지만, 공백으로 사용되어야 할 + 문자들이 문자 그대로의 +로 잘못 처리되고 있다고 생각합니다.

URL에서 공백을 +로 사용하는 것은 HTML 폼 인코딩에 있어 표준 준수 사항이므로, 이러한 방식으로 + 문자를 사용하는 다른 사이트/시스템에도 영향을 미칠 수 있습니다.

참고: WHATWG. HTML Living Standard. “URL-encoded form data” 섹션. HTML Standard

1개의 좋아요

제가 관련 있다고 생각했지만 지금은 그렇지 않다고 생각하는 다른 문제들:

음, 이건 좀 복잡한 문제인데, oneboxer와 프론트엔드 버그 두 가지라고 생각해요:

https://frinklang.org/fsp/solve2.fsp?equations=a+%2B+b&solveFor=&f=&ev=on

vs:

<https://frinklang.org/fsp/solve2.fsp?equations=a+%2B+b&solveFor=&f=&ev=on>

vs:

https://frinklang.org/fsp/solve2.fsp?equations=a+%2B+b&solveFor=&f=&ev=on

여기 수정안이 있지만, 관련 주제에서 볼 수 있듯이 이건 정말 복잡한 문제입니다 :tm: . 몇 년간 이 영역에서 수많은 버그가 발생했거든요.

1개의 좋아요

관심 가져주셔서 감사합니다!

프링크(Frink) 언어의 개발자인 앨런은 100% 표준 준수하면서도 어떤 오류든 정확히 드러내는 사람입니다. 그것이 바로 그의 전문 분야입니다.

(참고로, 과학이나 엔지니어링 분야에서 극도로 높은 단위 정확성이 필요할 때는 프링크(Frink)를 꼭 확인해 보세요.)

1개의 좋아요