# Composer 링크 모달에서 생성된 링크에 ' (%27)이 포함되어 있으면 링크가 깨집니다

**URL:** https://meta.discourse.org/t/links-produced-by-the-composer-link-modal-break-when-they-contain-a-27/376782
**Category:** Bug
**Tags:** composer
**Created:** [7월 31, 2025, 8:55오후 UTC](https://meta.discourse.org/t/links-produced-by-the-composer-link-modal-break-when-they-contain-a-27/376782 "2025-07-31T20:55:40Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [7월 31, 2025, 8:55오후 UTC](https://meta.discourse.org/t/links-produced-by-the-composer-link-modal-break-when-they-contain-a-27/376782/1 "2025-07-31T20:55:40Z")

</div>

이것은 다소 기이한 작은 문제이지만, 텍스트와 연관된 게시물 내 링크에 존재하는 문제를 보여줍니다.

제가 다음 단계를 수행하면:

1. 변수가 포함된 데이터 탐색 쿼리를 생성하고
2. 해당 쿼리를 그룹에 할당하며
3. 그룹의 보고서 탭을 통해 URL에 액세스하고
4. 변수를 추가하고 쿼리를 실행한 뒤
5. URL을 복사하여 게시물 내 텍스트에 추가하면

URL이 손상되거나 깨집니다.

관찰된 사항은 다음과 같습니다:

1. 이렇게 생성된 예시 링크입니다(비공개로 죄송합니다):  
`https://ehealthforum.nz/g/HiNZ-staff/reports/128?params=%7B%22topic_id%22%3A%2234521%22%7D`
2. 이 링크를 [여기 있는 텍스트](https://ehealthforum.nz/g/HiNZ-staff/reports/128?params=%257B%2522topic_id%2522%253A%252234521%2522%257D)에 추가하면 URL 인코딩에서 문제가 발생하여 다음과 같은 결과가 나옵니다:  
`https://ehealthforum.nz/g/HiNZ-staff/reports/128?params=%257B%2522topic_id%2522%253A%252234521%2522%257D`

그리고 이 현상은 사이트를 아름답게(?) 망가뜨립니다!

게시물에 링크를 단순히 붙여넣으면 이런 현상은 발생하지 않으며, 텍스트에 추가할 때만 발생합니다. 따라서 기존 인코딩을 만나면 뭔가 이상하게 동작하는 것 같습니다.

---

<div class="post-metadata">

### Author: ![per1234](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/per1234/32/569645_2.png) [@per1234](https://meta.discourse.org/u/per1234)
#### Post date: [8월 22, 2025, 12:55오후 UTC](https://meta.discourse.org/t/links-produced-by-the-composer-link-modal-break-when-they-contain-a-27/376782/2 "2025-08-22T12:55:51Z")

</div>

@nathank의 보고서는 버그를 발견했을 때 우연히 진행 중이었던 특정 니치 작업에 초점을 맞추고 있습니다. 그러나 이 버그는 [Data Explorer](https://meta.discourse.org/t/32566?silent=true)와 아무런 관련이 없습니다. 보고서가 지나치게 좁은 범위에 초점을 맞추고 있으며, 관련 없는 #data-explorer 태그(적절한 태그는 #composer입니다)가 사용되었기 때문에, Discourse 팀이 이를 해석하는 데 어려움이 있거나 적절한 수준의 관심을 받지 못할 수 있다는 우려가 있습니다.

다음 조건에서는 오류가 보편적으로 발생합니다:

- URL에 [퍼센트 인코딩](https://en.wikipedia.org/wiki/Percent-encoding)된 콘텐츠가 포함된 경우
- 링크가 “ **링크 삽입** ” 대화 상자를 통해 게시글에 추가된 경우

이러한 조건에서는 URL이 항상 손상됩니다.

### 재현 단계:

1. 웹 브라우저에서 다음 URL을 엽니다:  
`https://en.wikipedia.org/wiki/Horncastle_boar%27s_head`  
(URL에 `'` 문자의 퍼센트 인코딩인 `%27`이 포함되어 있음을 참고하십시오)  
🙂 예상된 페이지가 열립니다.
2. 게시글 작성기에서 “링크” 아이콘을 클릭합니다.  
“ **링크 삽입** ” 대화 상자가 열립니다.
3. 대화 상자의 “ **링크 또는 주제** ” 필드에 위의 URL을 입력합니다.
4. “ **삽입** ” 버튼을 클릭합니다.

🐛 위의 절차를 통해 추가된 링크의 대상은 다음과 같이 잘못됩니다:  
`https://en.wikipedia.org/wiki/Horncastle_boar%2527s_head`

올바른 URL인:  
`https://en.wikipedia.org/wiki/Horncastle_boar%27s_head`

대신 잘못된 URL이 표시됩니다.

이 링크는 의도된 페이지로 연결되지 않습니다.

이것은 퍼센트 인코딩 `%27`의 `%` 문자가 중복 인코딩되어, `%`가 자체 퍼센트 인코딩인 `%25`으로 대체되었기 때문에 발생했으며, 그 결과 올바른 URL 콘텐츠인 `%27`이 `%2527`으로 손상되었습니다.

### 플랫폼:

#### 운영 체제

- Windows 11

#### 브라우저

- Google Chrome 139.0.7258.128

#### Discourse

`12c80d43adeb87cc18604ace0430a75d277d7662`

### 추가 정보:

[try.discourse.org](http://try.discourse.org)의 "[안전 모드](https://meta.discourse.org/t/how-to-use-discourse-safe-mode/53504)"에서 오류를 재현할 수 있습니다.

* * *

이 오류는 모든 작성기 모드에서 발생합니다.

---

<div class="post-metadata">

### Author: ![renato](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/renato/32/383632_2.png) [@renato](https://meta.discourse.org/u/renato)
#### Post date: [8월 22, 2025, 1:36오후 UTC](https://meta.discourse.org/t/links-produced-by-the-composer-link-modal-break-when-they-contain-a-27/376782/3 "2025-08-22T13:36:34Z")

</div>

좋아요, 재현할 수 있습니다. 다만 **링크 모달** 을 사용할 때만 발생하는 것이 맞나요? (문제의 범위를 확인하기 위해)

직접 붙여넣기하면: [https://en.wikipedia.org/wiki/Horncastle\_boar’s\_head](https://en.wikipedia.org/wiki/Horncastle_boar%E2%80%99s_head) ; 또는 [선택된 텍스트](https://en.wikipedia.org/wiki/Horncastle_boar%27s_head) 위에 URL을 붙여넣는 경우, 예상대로 동작합니다.

수정: 아니면… 거의 그렇습니다. 직접 입력한 URL이 디코딩됩니다: [https://en.wikipedia.org/wiki/Horncastle\_boar’s\_head](https://en.wikipedia.org/wiki/Horncastle_boar%E2%80%99s_head), 이는 또한 예상치 못한 동작이며 인라인 원박싱(inline oneboxing)을 방지합니다.

리포트해 주셔서 감사합니다!

---

<div class="post-metadata">

### Author: ![per1234](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/per1234/32/569645_2.png) [@per1234](https://meta.discourse.org/u/per1234)
#### Post date: [8월 22, 2025, 1:37오후 UTC](https://meta.discourse.org/t/links-produced-by-the-composer-link-modal-break-when-they-contain-a-27/376782/4 "2025-08-22T13:37:46Z")

</div>

> [@renato](#):
>
> 링크 모달을 사용할 때만 **그렇다는** 거죠?

네, 맞습니다.

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [8월 24, 2025, 11:06오후 UTC](https://meta.discourse.org/t/links-produced-by-the-composer-link-modal-break-when-they-contain-a-27/376782/5 "2025-08-24T23:06:32Z")

</div>

> [@per1234](#):
>
> @nathank의 보고서는 버그를 발견했을 당시 우연히 하고 있던 특정 니치 작업에 초점을 맞추고 있었습니다.

맞아요. 제가 컴포저 링크 모달의 더 넓은 범위에서 발생한 링크 인코딩 문제였다는 사실을 모르고 있었습니다.

말씀해 주신 좋은 의견과 조사 내용을 반영하여 제목과 태그를 수정했습니다.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [9월 22, 2025, 10:16오후 UTC](https://meta.discourse.org/t/links-produced-by-the-composer-link-modal-break-when-they-contain-a-27/376782/6 "2025-09-22T22:16:05Z")

</div>

> [@per1234](#):
>
> 다음 조건에서 오류가 보편적으로 발생합니다:
> 
> - URL에 [퍼센트 인코딩](https://en.wikipedia.org/wiki/Percent-encoding)된 내용이 포함된 경우
> - 링크가 “ **링크 삽입** ” 대화 상자를 통해 게시글에 추가된 경우
> 
> …
> 
> 🐛 위 절차로 추가된 링크의 대상이 잘못되었습니다:  
> `https://en.wikipedia.org/wiki/Horncastle_boar%2527s_head`

[FIX: stop double encoding URLs when pasting via link UI - Pull Request #34834 - discourse/discourse - GitHub](https://github.com/discourse/discourse/pull/34834) 에서 이 문제가 수정되었을 것으로 생각합니다.

 ![image](https://global.discourse-cdn.com/meta/original/4X/3/1/f/31f43f078d185f6d9f94c151ac8b76c7ca163e7e.png)  
결과는 다음과 같습니다:  
`[Horncastle boar's head](https://en.wikipedia.org/wiki/Horncastle_boar's_head)`  
✅

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [10월 22, 2025, 6:47오전 UTC](https://meta.discourse.org/t/links-produced-by-the-composer-link-modal-break-when-they-contain-a-27/376782/7 "2025-10-22T06:47:06Z")

</div>

네, 이거 만져본 기억이 나요. 이 이슈는 닫아도 될 것 같아요!

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [10월 26, 2025, 9:00오후 UTC](https://meta.discourse.org/t/links-produced-by-the-composer-link-modal-break-when-they-contain-a-27/376782/8 "2025-10-26T21:00:19Z")

</div>

이 주제는 4일 후 자동으로 닫혔습니다. 더 이상 새 답변을 작성할 수 없습니다.
