CI 묻고 답하기

제목 CI 로 KCP 결제 연동개발하신분 질문드립니다.
카테고리 CI 2, 3
글쓴이 lyh 작성시각 2020/05/06 16:34:54
댓글 : 20 추천 : 0 스크랩 : 0 조회수 : 16368   RSS

CI 인코딩 UTF-8 환경에서 개발하고 있습니다.

kcp 계좌번호 인증 부분에서 인코딩 문제가 있어 질문드립니다.

kcp 환경은 EUC-KR 로 되어있어서 UTF8->EUC로 변환하여 kcp로 보내고 있는데 인코딩 변환이 잘 안되어

계좌주명을 제대로 받지를 못해 진행이 안되는 상황입니다.

영문이름으로 진행시는 이상없었습니다.

결론은 CI PHP환경에서 UTF8 ->EUC 변경시 변경된 값이 kcp 모듈과 잘안된는것 같은데요..

혹시 이거와 비슷한 문제 겪으셨거나 해결하신분 있으면 공유 부탁드립니다

php 에서 iconv , mb_detect_encoding 함수 둘다 진행해봣었습니다.

 

2012년도에 저랑 동일한 문제를 겪으셨던 분 글이 있어서 참고로 공유드립니다

https://cikorea.net/bbs/view/qna?idx=9929&page=1&view_category=&lists_style=

 다음글 view()에 관해서 질문합니다. (2)
 이전글 $this->form_validation->... (2)

댓글

포포탄 / 2020/05/06 16:48:26 / 추천 0
header("Content-type: text/html; charset=euc-kr");

이 헤더 붙여서 스크립트 실행하여도 마찬가지인가요? 글자가 어떤 모양으로 깨지는지를 봐야 답하기 수월할 것 같네요.

변종원(웅파) / 2020/05/06 16:58:47 / 추천 0
lyh / 2020/05/06 17:20:01 / 추천 0

 

@포포탄 

네 php단에서 헤더붙여서해도 동일하고 폼단에서 스크립트로 charset 변경해서 보내도 동일하네요..

첨부 이미지는 "테스트" 입력후 iconv 사용하여 euc로 변환 결과값입니다  

lyh / 2020/05/06 17:25:01 / 추천 0

@변종원(웅파)

보내주신 링크 참고하여  cp949, UHC로 모두 해보았지만 동일하네요 답변감사드립니다

포포탄 / 2020/05/06 18:19:48 / 추천 0

상품명같은 것은 잘 변환 되나요? 다른 한글도 잘 변환되는지도 궁금하네요.

글자깨지는 양상을 보면 일단 iconv에 문제가 있는 것은 아닌 것 같습니다.

 

간혹 파일 인코딩 상관없이 헤더에서 charset 지정되어있으면 해당 문자셋으로 프린트되는데 이거 잊어버리고 문자셋을 2번 컨버팅 하는 실수를 하기도 합니다. 이 부분도 확인해보셔야할 것 같습니다.

한대승(불의회상) / 2020/05/06 18:21:11 / 추천 0
kcp 모듈이 linux 쉘에서 실행되는건지 확인해 보세요.
lyh / 2020/05/06 18:37:55 / 추천 0

@한대승(불의회상)

모듈은 정상설치되었습니다. 다른건 이상없이 잘 동작하고 있습니다 답변감사드립니다

lyh / 2020/05/06 19:06:34 / 추천 0

@포포탄

환불처리에서는 계좌번호랑 예금주명만 처리하여 다른 주문 정보(상품명 등등)은 확인하지 않습니다.

따로 테스트 페이지를 생성하여 서버단, 폼단 언어셋 정확하게 세팅해도 동일합니다

답변감사드립니다

한대승(불의회상) / 2020/05/07 09:20:44 / 추천 0

@lyh 모듈이 linux 쉘에서 동작하는거면 폼, 서버 헤더 설정에 무관하게 쉘 언어환경을 따라갑니다.

꾸꾸 / 2020/05/07 09:23:14 / 추천 0

혹시 해결되셨나요?

결제 폼에서 submit 하기 전에 document의 charset을 EUC-KR로 변경 후 submit() 해보세요.

document.charset = 'EUC-KR';

form.submit();

document.charset = 'UTF-8';

쌈닭 / 2020/05/07 10:45:52 / 추천 0

http://blog.naver.com/grandwin/120067824645

요것도 한번 확인해 보세요.

테러보이 / 2020/05/07 13:07:38 / 추천 0

굳이 CI에서 발생 하는 문제 가 아니기 때문에 영카트를 참조하세요~

 

KCP에서 받는 경우

https://github.com/gnuboard/youngcart5/blob/master/shop/kcp/pp_cli_hub.php

setlocale(LC_CTYPE, 'ko_KR.euc-kr');

 

$buyr_name = iconv("utf-8", "cp949", $buyr_name);

 

테러보이 / 2020/05/07 13:10:23 / 추천 0

KCP로 보내는 경우

$bank_name  = iconv("cp949", "utf-8", $bank_name);

 

lyh / 2020/05/07 14:00:35 / 추천 0

@한대승(불의회상)

 linux 쉘에서 동작하는것이 아니고 모듈은 리눅스에 설치했지만 웹상에서 호출해서 사용하고 있습니다. 

답변감사드립니다^^

lyh / 2020/05/07 14:01:00 / 추천 0

@꾸꾸 

넵 ㅠㅠ 그방식도 해봤는데 안됐었습니다.. 감사드립니다