php에서 콘솔용 iconv 실행할때...
글쓴이: 은현 / 작성시간: 화, 2004/09/14 - 11:27오후
태터툴즈를 utf-8로 쓰기 위해서 이것저것 고치고 있습니다.
iconv() 함수가 없는 상황을 위해, 콘솔용 iconv를 사용하도록 하는 것도 추가하려고 합니다.
function utf82euckr($str) {
$str = addslashes($str);
$str = ereg_replace("\n","\\n",$str);
$str = exec("echo '".$str."' |iconv -c -f utf-8 -t uhc");
$str = ereg_replace("\\\\n","\n",$str); }
평션을 위와 같이 구현하였는데, "\문자열" 같은 경우에는 백슬래쉬가 사라지지 않고 남아있습니다. 하지만, "\n, \t" 등의 특수한 문자열이 들어가 있으면, \만 남아있고, 개행이나 탭이 되더군요.
콘솔에서 iconv를 실행할때
echo '////' | iconv ... 로 하면 백슬래쉬가 네개 나오고
echo "////" | iconv ... 로 하면 백슬래쉬가 두개 나옵니다.
그래서 위 $str 문자열을 ''로 묶어 주었습니다만, 원하는데로 되질 않는군요.
php에서 $str 자체를 뿌려주면 \n 등도 전혀 변함없이 잘 나오는데, 어째서 일까요?
Forums:
' ' 안에 있는 문자들은 아무런 치환이 되지 않습니다.그냥 ec
' ' 안에 있는 문자들은 아무런 치환이 되지 않습니다.
그냥 echo "$a"; 이거랑 echo '$a'; 이렇게 해보면 그 차이를 아실 수 있을겁니다.
\t, \r, \n, \\ 등의 문자들이 ' ' 안에서는 그대로 출력됩니다. ' ' 안에서 이스케입 되는 문자는 \' 뿐입니다. 더 있던가..? -_-;
원하는 걸 하시려면 ' '." " 처럼 ' 과 " 를 혼용해서 . 로 이어주시면 될겁니다.
댓글 달기