채택완료

api 한글깨짐 문제 발생

2022-06-03 (금) 11:22:26 4,101

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

write_update.skin.php

Copy
// 적조 api 가져오기

        $.ajax({

            url: "/bbs/API/grow_environment_get_api.php",

            type: "POST",

            data : {

                date : measure_date_replace,

                code : fishery_science_service_key

            },

            async       : false,

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

            success : function(res) {

                console.log("적조데이터",res)

                $('#red_tide_box').append(res)

            },

            error : function(err){

            alert(err)

            }                                

        });

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

bbs/API/grow_environment_get_api.php

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

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

 

$ch = curl_init();

$url = 'https://www.nifs.go.kr/OpenAPI_json?id=redtideList'; /*URL*/

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

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

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

 

curl_setopt($ch, CURLOPT_URL, $url . $queryParams);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

$response = curl_exec($ch);

// $object = simplexml_load_string($response);

curl_close($ch);

var_dump($response);

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

|

답변 3개 / 댓글 2개

채택된 답변
+20 포인트

안녕하세요?

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

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

990718968_1654250048.7261.png

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

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

990718968_1654250059.1347.png

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

Copy
$result = iconv("EUC-KR", "UTF-8", $response);

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

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

답변에 대한 댓글 2개

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

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

별도의 사본파일 백업 후,

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

2022-06-03 (금) 12:57:52

웹 사이트가 euc-kr이라면

iconv()를 사용해 보세요.

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