https://xetown.com/board/719230

 

위 댓글에 나온 문제에 관한 내용입니다.

 

인스타쪽으로 해시태그로 게시물을 가져오는 과정에서 

tag 값을 한글로 보내면 안되는 것 같습니다.

$tag = urlencode(Context::get('tag'));  

그래서 이렇게 처리를 해서 한글의 tag값을 인코딩해서 처리하니 잘 됩니다. 

 

그런데 여기서 문제가 한글이 아닌 인코딩이 이미 된 상태의 값은 urlencode 에서 한번 더 처리가 되면 문제가 발생합니다.

 

태연  -> 인코딩처리

%ED%83%9C%EC%97%B0   -> 인코딩처리 하지 않기 

 

위와 같이 처리할 수 있을까요?

  • profile
    https://stackoverflow.com/questions/10365160/preg-match-unicode-parsing
    여기 한번 확인해보세요.
  • profile profile
    $tag = urldecode(Context::get('tag'));
    $tag = urlencode($tag);

    해결했습니다. 먼저 디코딩을 해서 엔코딩시 문제없게 하니 잘 되네요!
  • profile profile
    아항..ㅎㅎ ㅋㅋㅋ 수고하셧어용...
  • profile
    $tag를 받을때 한번 decode 후 다시 encode 해 보세요.

    $tag = urlencode(urldecode(Context::get('tag')));
  • profile profile
    방금 생각나서 그렇게 했습니다! 감사합니다.