Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

최근 댓글 이모지 깨짐 #357

Open
silverprize opened this issue Oct 2, 2019 · 14 comments
Open

최근 댓글 이모지 깨짐 #357

silverprize opened this issue Oct 2, 2019 · 14 comments
Assignees

Comments

@silverprize
Copy link
Member

최근 댓글 API 깨짐

스크린샷 2019-10-02 오후 7 55 12

스크린샷 2019-10-02 오후 7 55 17

댓글 API 정상

스크린샷 2019-10-02 오후 7 55 32

스크린샷 2019-10-02 오후 7 55 48

@Pyohwan
Copy link
Member

Pyohwan commented Oct 10, 2019

스크린샷 2019-10-11 오전 12 03 43

DB에 저렇게 들어가 있네요.

@Pyohwan
Copy link
Member

Pyohwan commented Oct 10, 2019

@silverprize
차이가 나는 이유는 홈에서는 html tag 를 제거하는거고, 글의 댓글에는 그대로 보여주니깐 다름. 근데 가운데 성별 이모지는 왜 넣었나요?

@silverprize
Copy link
Member Author

@Pyohwan 첨부 이미지는 같은 데이터를 API마다 다르게 준다는 설명입니다.
댓글API 정상에 보이는게 입력한 데이터입니다.

@Pyohwan
Copy link
Member

Pyohwan commented Oct 10, 2019

@silverprize
댓글의 값을 일관되게 받고 싶은 건가요?
홈에서 댓글을 110 length 잘라서 주는 이유때문에 차이가 나는거 같네요.

Pyohwan pushed a commit that referenced this issue Oct 10, 2019
@silverprize
Copy link
Member Author

@Pyohwan 당연한 말씀을

@Pyohwan
Copy link
Member

Pyohwan commented Oct 10, 2019

@silverprize
그럼 jakduk-web 에서 댓글 길이가 길면 짤라주고, 이미지 태그 같은 html 태그 있다면, 제거해서 보여줄건가요?

@silverprize
Copy link
Member Author

@Pyohwan 제가 바라는 일관성은 content값이 똑같아야 한다는게 아니라 입력한 문자가 다른 문자로 바뀌지 않아야 한다는 말입니다.

@Pyohwan
Copy link
Member

Pyohwan commented Oct 11, 2019

DB에 저장한 값고 API 응답의 값은 동일함

  • curl 'https://jakduk.com/api/home/latest' 했을때

    • "content":"\uD83C\uDFC3♀️\uD83C\uDFC3♂️\uD83D\uDEB4♀️\uD83D\uDEB4♂️"
      스크린샷 2019-10-11 오후 1 38 41
  • curl 'https://jakduk.com/api/board/free/1027/comments' 했을때

    • <p> 태그 빼곤 동일
    • "content":"<p>\uD83C\uDFC3‍♀️\uD83C\uDFC3‍♂️\uD83D\uDEB4‍♀️\uD83D\uDEB4‍♂️</p>"
      스크린샷 2019-10-11 오후 1 38 55

그럼 입력할때 이상한 문자가 들어갔을까?

  • 애초에 위지윅에서 저런식의 문자열로 작성 했음
    스크린샷 2019-10-11 오후 1 51 03

@silverprize
Copy link
Member Author

silverprize commented Oct 12, 2019

@Pyohwan 안보이는 문자가 숨어있습니다.
이모지 부분만 string length 출력해보면 위에건 16, 아래건 20 나옵니다.
안보이는 문자가 손실되어 한글자로 렌더링될 이모지가 두글자로 나뉘어 렌더링됩니다.

Pyohwan pushed a commit that referenced this issue Oct 17, 2019
@Pyohwan
Copy link
Member

Pyohwan commented Oct 17, 2019

@silverprize

jakduk-api 에서 댓글 입력 받을때, 컨트롤러에서

2019-10-18 00:05:02,239 [http-nio-8080-exec-10] [INFO ] [BoardRestController.writeArticleComment:230] - request board : FREE, seq : 366, body : WriteArticleComment{content='<p>🏃‍♀️🏃‍♂️🚴‍♀️🚴‍♂️</p>', galleries=[]}
2019-10-18 00:05:02,240 [http-nio-8080-exec-10] [INFO ] [BoardRestController.writeArticleComment:231] - content length : 27

홈에서 댓글 가져오는 API 수행시, DB 에서 가져왔을 때

2019-10-18 00:12:40,680 [http-nio-8080-exec-2] [INFO ] [ArticleService.lambda$getLatestComments$13:407] - comment id: 5da880a839badd0938b2dde2, content : 🏃‍♀️🏃‍♂️🚴‍♀️🚴‍♂️, length : 20
2019-10-18 00:12:40,680 [http-nio-8080-exec-2] [INFO ] [ArticleService.lambda$getLatestComments$13:409] - strip comment : 🏃♀️🏃♂️🚴♀️🚴♂️, length : 16

결론은 length 20 -> 16 이 되었네요.
html tag 벗겨내는 Jsoup 라이브러리를 사용하는데 이쪽을 봐야 할것 같네요.

@Pyohwan
Copy link
Member

Pyohwan commented Oct 18, 2019

@silverprize
마땅히 다른 라이브러리도 없네요. 그냥 정규식으로..

@Pyohwan
Copy link
Member

Pyohwan commented Oct 18, 2019

@silverprize
정규식도 예외처리하는게 너무 힘듦

@Pyohwan
Copy link
Member

Pyohwan commented Oct 18, 2019

일단 이대로 가시죠. 다른 대안도 없고, Jsoup 쪽에 이슈 남겨뒀어요.
jhy/jsoup#1269

@Pyohwan Pyohwan closed this as completed Oct 18, 2019
Pyohwan pushed a commit that referenced this issue Oct 18, 2019
Pyohwan pushed a commit that referenced this issue Oct 18, 2019
silverprize added a commit to silverprize/jakduk-api that referenced this issue Oct 19, 2019
html태그 삭제 방식 교체 jsoup -> regex
텔레그램 초대 링크 삭제
Pyohwan pushed a commit that referenced this issue Oct 21, 2019
@frostblazergit
Copy link

Hello, I hope this solves your problem.

jhy/jsoup#1269 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants