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

php 문자 인코딩 iconv 사용시 질문입니다. 채택완료

와우대감 2년 전 조회 2,102

예를들어

</p>

<p>$_str = "외부 XML이나 DB 또는 엑셀에서 읽어온 글자";</p>

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

<p>

했을때

$_str 가 EUC-KR 이 아닐경우

이때도 이상없이 UTF-8 로 인코딩 되나요?

 

아니면 기본 인코딩정보가 틀려서 오류나 글자가 깨지거나 그러나요??

 

$_str 의 현재 인코딩상태는 확인할려면 어떻게 해야할까요?

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

답변 1개

채택된 답변
+20 포인트
c
2년 전

 

만약 $_str 이 EUC-KR 이 아닐경우 iconv() 을 사용하면 오류가 나거나 글자가 깨질 수 있습니다. 따라서, $_str 의 현재 인코딩 상태를 확인하고 iconv() 함수를 사용하기 전에 반드시 인코딩 상태를 확인하는 것이 좋습니다. mb_detect_encoding() 함수를 사용하여 $_str 의 현재 인코딩 상태를 확인할 수 있습니다. 예를 들어,

</p>

<p>$_str_encoding = mb_detect_encoding($_str);</p>

<p>if($_str_encoding == "EUC-KR") {</p>

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

<p>} else {</p>

<p>$_str_enc = iconv($_str_encoding, "UTF-8",$_str);</p>

<p>}</p>

<p>

위와 같이 하면 됩니다.

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

답변에 대한 댓글 2개

와우대감
2년 전
위 답변 신뢰할수있는건가요? ㅋ...
그렇다면 UTF-8 을 UTF-8 로
iconv("UTF-8", "UTF-8",$_str);
이렇게 됐을땐 괜찮을까요??

$_str_encoding 의 값이 "UTF-8" 일때가 궁금하네요
엑스엠엘
2년 전
제대로 답변했네요

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

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

로그인