2013-10-21 3 views
0

PHP에서 system()을 통해 쉘 인자로 문자열을 보내려고합니다.쉘 인수의 특수 문자를 이스케이프 처리하는 방법

이 같은 특수 문자가 포함 된 문자열을 보낼 때까지 모든 것이 잘 작동합니다. "Œ" 특히. 나는이 문자열을 "ŒDucks"를 보낼 때, 쉘은 단지 "/", "\", 간단한 따옴표를 추가를 탈출 "오리"

내가 해봤를 접수에 있지만 나던 문제, 내가 얻을 같은 결과

이 내 코드입니다 : :) 불확실성에서입니다 setlocale(LC_CTYPE, "en_US.UTF-8"); 또는 어떤 장소 : 시간 :

+1

'setlocale (LC_CTYPE, "en_US.UTF-8");'(또는 사용하기 편리한 utf-8 로케일)을 설정하면 어떻게됩니까? – Wrikken

+0

음, 흥미 롭다. 나는 그것을 해냈다. 대신에 "Å"대신에 "Å"이 붙어있다. – Mollo

+0

흠, PHP 애플리케이션의 캐릭터는 무엇인가? – Wrikken

답변

1

시도에 대한

system('/usr/bin/perl /var/prof/info.pl'.' '.EscapeShellArg("ŒDucks") > /dev/null &'); 

감사합니다.

+0

방금 ​​해 봤는데 대신이 캐릭터를 사용했습니다. "Œ" 올바른 로케일을 찾아야 할 것 같습니다. – Mollo

+0

네, 죄송 합니다만, 나는 그 영국인 중 한 명이며, 그 외의 다른 것에 대해서는 희소 한 경우가있었습니다. – AbraCadaver

+0

알겠습니다. 도와 주셔서 감사합니다 :) – Mollo