개발-PHP

[함수] iconv 언어셋 옵션 //TRANSLIT , //IGNORE

WEBKIKIS 2016. 3. 30. 20:44
반응형

[함수] iconv 언어셋 옵션 //TRANSLIT , //IGNORE


iconv 사용시
utf-8 => euc-kr, cp949
위 처럼 변환하는 경우
목적지 언어셋에 없는 문자가 변환에 문제가 되는 경우가 있다.

옵션 없음
옵션이 없이 사용할 경우 표현할 수 없는 문자 부터 뒤로는 전부 사라진다.
(밑의 첫번째 예제 참고)






//TRANSLIT
If you append the string //TRANSLIT to out_charset transliteration is activated. This means that when a character can't be represented in the target charset, it can be approximated through one or several similarly looking characters.
(php 함수 메뉴얼에서)
나타낼 수 없는 문자일 경우, 문자를 유사한 문자로 표시함.
한글의 경우 자음,모음 분리됨.(밑의 예제 참고)
A 같은 라틴 문자는 부호+알파벳으로 분리됨

//IGNORE
If you append the string //IGNORE, characters that cannot be represented in the target charset are silently discarded.
(php 함수 메뉴얼에서)
나타낼 수 없는 문자일 경우, 문자를 삭제함.


//IGNORE//TRANSLIT , //TRANSLIT//IGNORE
둘을 동시에 사용할 경우, //TRANSLIT 으로 동작함.

$v='AA가힣똚헳나';
$r =iconv('utf-8','euc-kr',$v);
echo '$r : ',$r,':',urlencode($r);
=>
$r : A:A
$v='A가힣똚헳나';
$r = iconv('utf-8','euc-kr//TRANSLIT',$v);
echo '$r : ',$r,':',urlencode($r);
=>
$r : A´A가ㅎㅣㅎㄸㅗㄻㅎㅔㅀ나:A%A2%A5A%B0%A1%A4%BE%A4%D3%A4%BE%A4%A8%A4%C7%A4%AB%A4%BE%A4%C4%A4%B0%B3%AA


$v='A가힣똚헳나';
$r = iconv('utf-8','euc-kr//IGNORE',$v);
echo '$r : ',$r,':',urlencode($r);
=>
$r : A가나:A%B0%A1%B3%AA

반응형