| 제목 | euc--kr에서 utf-8로 변환시 변환이 안되서 일부 깨지는 한글 처리 방법 있을까요?? | ||
|---|---|---|---|
| 카테고리 | PHP | ||
| 글쓴이 | 기브 | 작성시각 | 2019/09/20 14:49:22 | 
|  | |||
| EUC-KR로 된 API 사이트가 있는데 이곳을 호출하여 데이터를 XML 형태로 받아옵니다. 호출해 데이터를 받는 페이지에선 UTF-8로 인코딩이 되어있어 데이터를 받아온 후 mb_convert_encoding 으로 변환을 하여 xml 데이터를 읽어오는데요. 닣, 뚸 같은 단어가 들어갈 경우 XML이 제대로 파싱이 되지 않아 데이터를 읽어 오지 못하는 경우가 발생합니다. 이런문제가 발생하지 않도록 처리할 수 있는 방법이 있는지 궁금합니다. 
 
 
 | |||
| 다음글 | Composer + CodeIgniter 구조가 이게 ... (6) | ||
| 이전글 | 수정 페이지 셀렉트박스에서, 등록시 선택한 값 DB에서... (1) | ||
| 
                                변종원(웅파)
                                /
                                2019/09/20 14:53:59 /
                                추천
                                0
                             
                                https://www.php.net/manual/en/function.mb-detect-encoding.php  이 함수를 이용해서 euc-kr 이 맞는지 확인해보세요.
                             | 
| 
                                기브
                                /
                                2019/09/20 15:00:05 /
                                추천
                                0
                             답변 감사합니다. 확인해보니 EUC-KR은 맞습니다. 전체가 한글이 깨져 나오는것은 아니며, 일부 단어들이 깨져 나옵니다. 닣 or 뚸 같은 단어들에 한해서 깨져나오는 증상이네요 ㅠ | 
| 
                                엽토군
                                /
                                2019/09/22 09:46:11 /
                                추천
                                0
                             
                                원 데이터 자체는 멀쩡히 들어오나요? 그리고 체감상 한국어 EUC-KR은 iconv()가 mb보다 더 효과가 좋더군요.
                             | 
| 
                                기브
                                /
                                2019/09/23 09:50:15 /
                                추천
                                0
                             
                                일부 한글에 대해선 UTF-8로 변환이 안되는듯 합니다. ㅠㅠ
                             | 
| 
                                기브
                                /
                                2019/09/23 09:50:46 /
                                추천
                                0
                             
                                물론 mb_convert_encoding 으로 처리합니다.
                             | 
| 
                                변종원(웅파)
                                /
                                2019/09/23 16:23:29 /
                                추천
                                0
                             $a = "닣"; echo '1 '.$a.'<br>'; $b = iconv( 'utf-8','euc-kr', $a); echo '2 '.$b.'<br>'; $c = iconv( 'euc-kr','utf-8', $b); echo '3 '.$c.'<br>'; 
 iconv(): Detected an illegal character in input string 라고 나오네요. 
 mb_convert_encoding 함수는 닣 -> 변환 -> 꿔 로 바뀝니다. | 
| 
                                기브
                                /
                                2019/09/24 16:58:13 /
                                추천
                                0
                             답변 감사합니다. 그럼 해당 문제는 깨지지않게 변환되는건 안되나보네요. 다른방법을 찾아봐야되겠네요.. 감사합니다. | 
| 
                                쌈닭
                                /
                                2019/09/25 12:16:29 /
                                추천
                                0
                             
                                euc-kr 대신 cp949(cp-949???)로 변환해 보세요...
                             |