Extra Form
PHP PHP 7.2
CMS Rhymix 2.x

새글 알림을 텔레그램 봇에게 메시지를 전달해서 메시지를 발생시키는데 이모지가 문제가 되고 있습니다.

저희 사이트의 경우 이모지 사용이 흔하게 사용되는데 텔레그램에서는 이모지를 처리할 수 없는지 이모지 이후부터 메시지가 잘려서 출력이 됩니다.

 

저희가 전달한 부분에서 이모지부터 잘리는 문제..

 

오래전에 db가 utf8mb4 를 지원하지 않을때 게시글이 이모지 이후 잘려서 저장되는 것과 비슷한 증상입니다.

 

해결하는 방법이 있을까요?

 

이모지를 제거하는 함수를 사용하는 것은 추가되는 이모지가 있을 경우 문제가 계속 될 것 같기도 하구요.

  • Lv5
    텔레그램은 직접 입력해서 보낼때도 이모지처리를 못하나요? 널리 쓰이는 메신저인데 이모지처리를 못할 것 같지 않아서요. 혹시 보내는 과정에서 문제가 생기는 건 아닐까요?
  • Lv5 Lv30
    텔레그램 사용자들이 주고 받는 메시지에서 이모지가 안된다는건 말이 안되겠죠.
    api 로 전송받는 문자형식 중 이모지가 문자가 처리가 안되는 것 같습니다.
  • Lv30
    한글,영문,특수문자 정도만 남길수 있는 정규식이 필요할 것 같습니다.
  • ? Lv3

    테스트 해보니까 잘되는것같습니다.
     file_get_contents('https://api.telegram.org/bot<token>/sendMessage?text=test%F0%9F%A6%81&chat_id=<chat_id>')
    이런식으로 테스트했습니다.

     

    화면 캡처 2021-10-07 122650.png

  • ? Lv3 Lv30

    네. 애드온에서 url 에 메시지를 포함시켜서 실행할때 뭔가 문제가 되는 듯 합니다.
    제목,댓글에서는 이상이 없는데 유독 지금 문서 내용부분을 전송하는 부분에서 발생하고 있네요.

     

    그리고 문제가 되는 하트 모양이 글 수정해서 소스보기로 보면

    &hearts;︎&hearts;︎

     

    이런식으로 나오네요. 다른 이모티콘은 소스보기에서도 이모티콘 모양으로 나오는데요...

     

    문제가 되었던 부분이 &hearts; 이건데 이게 이모지가 아닌것 같네요. 

  • Lv30
    특정 부분에 끼워져 있는 부분에서만 문제가 발생하는지 파악은 못했지만
    $content = html_entity_decode($content);

    위 코드로 한번 처리해주니 해결이 되었습니다.
  • Lv30 Lv9
    해결 방법까지 늘 이렇게 댓글 달아두시니,...
    검색해서 힌트를 얻는 분들께 시원한 빗줄기일 것 같네요!
    늘 감사드립니다. ^^