테스트 사이트 - 개발 중인 베타 버전입니다

api 한글깨짐 문제 발생 채택완료

승슝 3년 전 조회 3,450

안녕하세요, 페이지에 api 가져오는 방법 테스트 중입니다... 그런데 값은 가져와지는데 가져오는 도중 한글 깨짐 현상이 발생하는데 3일을 해결하려고 해도 해결되지 않아 이렇게 질문글 올립니다.

 

write_update.skin.php

</p>

<p>        // 적조 api 가져오기</p>

<p>        $.ajax({</p>

<p>            url: "/bbs/API/grow_environment_get_api.php",</p>

<p>            type: "POST",</p>

<p>            data : {</p>

<p>                date : measure_date_replace,</p>

<p>                code : fishery_science_service_key</p>

<p>            },</p>

<p>            async       : false,</p>

<p>            contentType : "application/json; charset:UTF-8",</p>

<p>            success : function(res) {</p>

<p>                console.log("적조데이터",res)</p>

<p>                $('#red_tide_box').append(res)</p>

<p>            },</p>

<p>            error : function(err){</p>

<p>            alert(err)</p>

<p>            }                                </p>

<p>        });</p>

<p>

 

bbs 안에 서버 연결을 위한 파일을 만들어 작업하고 있습니다

bbs/API/grow_environment_get_api.php

</p>

<p>$date = $_POST['date']; // 검색하고자하는 데이터 날짜를 동적으로 가져오기 위한 변수</p>

<p>$code = $_POST['code']; // 페이지의 인증키 값을 동적으로 가져오기 위한 변수</p>

<p> </p>

<p>$ch = curl_init();</p>

<p>$url = '<a href="https://www.nifs.go.kr/OpenAPI_json?id=redtideList';" target="_blank" rel="noopener noreferrer">https://www.nifs.go.kr/OpenAPI_json?id=redtideList';</a> /*URL*/</p>

<p>$queryParams = '&' . urlencode('key') . '=' . $code ; /*Service Key*/</p>

<p>$queryParams .= '&' . urlencode('sdate') . '=' . urlencode('20211101'); /**/</p>

<p>$queryParams .= '&' . urlencode('edate') . '=' . urlencode('20220526'); /**/</p>

<p> </p>

<p>curl_setopt($ch, CURLOPT_URL, $url . $queryParams);</p>

<p>curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);</p>

<p>curl_setopt($ch, CURLOPT_HEADER, FALSE);</p>

<p>curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');</p>

<p>$response = curl_exec($ch);</p>

<p>// $object = simplexml_load_string($response);</p>

<p>curl_close($ch);</p>

<p>var_dump($response);</p>

<p>

 

국립수산과학원의 open api의 값은 뜨는데 한글이 깨지는 현상 문제입니다...

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
I
3년 전

안녕하세요?

질문을 읽고 nifs.go.kr에 가입하여 API를 테스트해봤습니다 ^^

 

해당 API에서 XML로 받으면 선언부에서 인코딩이 EUC-KR임을 확인할 수 있습니다.

 

JSON으로 받은 후 파일로 저장하여 에디터에서 UTF-8로 읽으면 한글이 깨지지만

EUC-KR로 읽으면 정상적으로 로딩되는 것을 확인할 수 있습니다.

 

따라서 EUC-KR -> UTF-8로 인코딩 변경이 필요합니다.

</p>

<p>$result = iconv("EUC-KR", "UTF-8", $response);</p>

<p>

 

정부기관 API 관련 질문은 언제든지 환영이에요~!

그럼 문제를 잘 해결하시고 즐거운 불금 되세요 ^-^

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

엑스엠엘
3년 전
설마했는데
정부기관 API가 아직도 euc-kr인 것이 있다나 놀랍군요.
I
Innisfree
3년 전
넵 그러게요~! ㅎㄷㄷ
정부기관 API 중에서는 아직도 의외로 많이 있더군요~ ^-^
그럼 엑스엠엘 님께서도 즐거운 불금 되세요 :)

댓글을 작성하려면 로그인이 필요합니다.

3년 전

bbs/API/grow_environment_get_api.php 파일이 UTF-8 로 인코딩 되어 있지 않다면,

별도의 사본파일 백업 후,

UTF-8 로 인코딩하여 저장/확인해 보면 어떨까 싶습니다. https://m.blog.naver.com/jessol/220323633253

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

웹 사이트가 euc-kr이라면

iconv()를 사용해 보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인