api 한글깨짐 문제 발생
본문
안녕하세요, 페이지에 api 가져오는 방법 테스트 중입니다... 그런데 값은 가져와지는데 가져오는 도중 한글 깨짐 현상이 발생하는데 3일을 해결하려고 해도 해결되지 않아 이렇게 질문글 올립니다.
write_update.skin.php
// 적조 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
$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
안녕하세요?
질문을 읽고 nifs.go.kr에 가입하여 API를 테스트해봤습니다 ^^
해당 API에서 XML로 받으면 선언부에서 인코딩이 EUC-KR임을 확인할 수 있습니다.
JSON으로 받은 후 파일로 저장하여 에디터에서 UTF-8로 읽으면 한글이 깨지지만
EUC-KR로 읽으면 정상적으로 로딩되는 것을 확인할 수 있습니다.
따라서 EUC-KR -> UTF-8로 인코딩 변경이 필요합니다.
$result = iconv("EUC-KR", "UTF-8", $response);
정부기관 API 관련 질문은 언제든지 환영이에요~!
그럼 문제를 잘 해결하시고 즐거운 불금 되세요 ^-^
!-->웹 사이트가 euc-kr이라면
iconv()를 사용해 보세요.
bbs/API/grow_environment_get_api.php 파일이 UTF-8 로 인코딩 되어 있지 않다면,
별도의 사본파일 백업 후,
UTF-8 로 인코딩하여 저장/확인해 보면 어떨까 싶습니다. https://m.blog.naver.com/jessol/220323633253
답변을 작성하시기 전에 로그인 해주세요.