37 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
xpay는 node js 를 지원하지 않습니다.
nodejs에서 xpay로 euc-kr을 변환해서 사용할 수 있지 않나요?
iconv를 이용한다거나
xpay 모듈 자체가 nodejs에서 제공이 안될텐데요.
어떤 모듈을 사용하고 계신건지 정확히 확인 부탁드립니다
에스크로라서 api로 보내기만 하면 되거든요~
제가 부연설명이 적었네요
아 에스크로 이시군요
euc-kr 로 변환했을 때 글자가 깨진다는건 어디서 확인하셨을까요?
console.log는 65001(utf-8)만 지원해서 권장드리지 않습니다
그렇군요.. euc-kr로 변환 후 상점관리자에서 확인했을때, 글자깨짐을 확인했었어요
?대??以?; 이런거나
상점관리자에서 확인하셨을때 발생한 건이면 인코딩이 잘못된게 맞는거 같은데요.
잠시만 기다려 주세요
iconv.encode(utf8Str, 'euc-kr');
占쏙옙占쏙옙1123占쏙(占쏙옙) <- 이런식으로 상점관리자(구)에서 확인됩니다.
요렇게 인코딩 하고 계신게 맞으신가요?
네네 맞아요
점쏙옙 이슈는 마름모에 ? 표시가 있는 u+0000 문자가 두개 이상 들어왔을때 나오는 버그인데요.
상황을 정리해 보면 euckr로 제대로 인코딩이 안된것 같습니다
그런거 같은데 해깔리더라구여
utf8 원본 문자열은 올바른 한글 문자열이죠?
네 변수로 설정했고 값은 '정보없음'입니다.
혹시 어떤 파라미터를 넘겨주고 계신건가요 ?
관계와 수령자 이름을 넘겨주고 있었어요. rcvname, rcvrelation
iconv lite로 하고 계신가요 ?
네 맞습니다
별도로 처리해주는 곳에서 캐릭터셋 변환하진 않져?
그렇진 않을 겁니다. 확실하진 않지만 xpay 시스템은 싹 다 euckr만을 내부에서 이용하고 있는 것으로 알아서..
우와,,,
지금 저는 axios에서 x-www-form-urlencoded 설정해서 쓰고 있어요
axios 사용하시는 군요. 제가 한번 테스트를 진행해 봐야 알것 같은데요.. 제가 지금까지 확인된 건 euckr로 안들어오고 있다 정도입니다.
axios쪽에서 헤더 설정도 하셨을까요?
헤더 설정으로는
이렇게 쓰고 있습니다.
처음엔
'Content-Type': 'application/x-www-form-urlencoded'; charset=euc-kr
로 쓰다가 차이가 없길래 뺐어요차이가 없더라도 일단은 요렇게 세팅해서 진행 부탁드릴게요.
원인이 두가지 같습니다
1. 요청 자체가 euckr로 안들어옴
2. 파라미터 값이 euckr이 아님
네 알겠습니다. 저도 해볼게요
한번 확인은 좀 부탁드립니다.
혹시 개발 환경이 윈도우이신가요?
맥입니다
아.. 그러시군요.


일단 제가 확인하기로는 상점관리자에서 확인하셨다는 문자열은 전혀 올바르지 않은 데이터라서
최초 요청당시 캐릭터셋 부분을 더 자세히 확인해 보아야 할 것 같습니다
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
저도 똑같이 아래 코드로 실행했을 때 제대로 인코딩 되는 것 같습니다.
안녕하세요 @iam.ayaan 혹시 xpay쪽에서는 따로 utf8로 한번 변환해주거나 그런게 없죠?
오로지 euc-kr로만 들어와야 하는건지 궁금해요
euckr을 사용하는건 확실한데 내부에서 컨버트 하는지는 잘 모르겠습니다 😅
네 에스크로API 는 euc-kr 만 지원합니다.
이 부분을 해결해서 nodejs에서 활용하는 방법을 블로그에 올려뒀습니다. Ayann님 확인 해주셔서 감사합니다.
https://djunnni.tistory.com/31
세상엔 배울 게 많다
EUC-KR 인코딩을 사용하는 서버와 통신하기
1. 문제 상황 NestJS로 서비스하고 있는 데 토스페이먼츠의 에스크로 등록 API는 EUC-KR 인코딩이 되어있다. 그로 인해 정상적으로 등록되지 못해 의도하지 않는 결과를 얻게 되었다. 이 문제를 파악하기 위해 공부했던 내용은 https://djunnni.tistory.com/10 에서 확인할 수 있습니다. 2. 기존 환경 NestJS 공식 문서에서 제공하고 있는 HttpModule을 이용해 외부 API를 호출하고 있다. https://docs.nestjs.com/techniques/http-module 3. Axios의 application/x-www-form-urlencoded 처리 과정 httpModul...
아 URLEncode가 문제였나요?
공유 감사드립니다