Url를 Encoding하는 방법

[code:2lfv8zq6]echo -n "내용" | xxd -plain | sed ‘s/(..)/%\1/g’[/code:2lfv8zq6]
여러 패키지나 라이브러리가 존재하나, 대다수는 약간의 이상한 수작업 노동을 하여 언코딩하고 있습니다. 또, 하드디스크 공간을 차지하기도 합니다. 이걸 함수화해서 사용하면 수십배의 공간절약을 하실수 있습니다. 또, 원하는 내용을 완전히 url encoding할수 있습니다.

%ec%95%88%eb%85%95%ed%95%98%ec%84%b8%ec%9a%94%3f –> 안녕하세요?

참 착하디 착한 정규식이군요! 자주 활용하겠습니다. ㅎㅎㅎ

[code:2cp0l8lp]
#!/bin/bash
for f in "$@";
do
nf=${f//%/\\x}
[ "$f" = "$nf" ] && continue
eval "nf=$nf"
echo -e "$nf"|iconv -f cp949 &>/dev/null
if [ $? -eq 0 ]; then
nf=$(echo -e "$nf"|iconv -f cp949)
else
nf=$(echo -e "$nf")
fi
mv "$f" "$nf"
done
[/code:2cp0l8lp]

다운로드된 파일명에 %가 붙어서 x-www-url-encoded로 인코딩된 경우,
문자코드로 바꿔서, cp949인코딩인지 체크해서 파일명을 바꿔주는 스크립트입니다.

예제가 잘못됐네요.
[color=#FF0000:2ahaznok]X[/color:2ahaznok] %ec%95%88%eb%85%95%ed%95%98%ec%84%b8%ec%9a%94%3f –> 안녕하세요?
[color=#0000FF:2ahaznok]O[/color:2ahaznok] 안녕하세요? –> %ec%95%88%eb%85%95%ed%95%98%ec%84%b8%ec%9a%94%3f

[quote="protochaos":1bc6rgsd][code:1bc6rgsd]
#!/bin/bash
for f in "$@";
do
nf=${f//%/\\x}
[ "$f" = "$nf" ] && continue
eval "nf=$nf"
echo -e "$nf"|iconv -f cp949 &>/dev/null
if [ $? -eq 0 ]; then
nf=$(echo -e "$nf"|iconv -f cp949)
else
nf=$(echo -e "$nf")
fi
mv "$f" "$nf"
done
[/code:1bc6rgsd]

다운로드된 파일명에 %가 붙어서 x-www-url-encoded로 인코딩된 경우,
문자코드로 바꿔서, cp949인코딩인지 체크해서 파일명을 바꿔주는 스크립트입니다.[/quote:1bc6rgsd]

만들어 주신 스크립트를 가지고 desktop 파일을 만들어 봤습니다
kde 사용자들은

[code:1bc6rgsd]
$ sudo cp url-decoding.desktop /usr/share/kde4/services/ServiceMenus/
[/code:1bc6rgsd]

해주시면 [동작]에서 사용이 가능합니다.

물론 그전에 protochaos님이 만들어주신 스크립트를
/usr/local/bin/url-decoding.sh에 저장해서 사용하시면 됩니다.

gnome 사용자 분들은… 잘 모르겠네요…

[quote="debpolaris":2h8sum8u]
만들어 주신 스크립트를 가지고 desktop 파일을 만들어 봤습니다
kde 사용자들은

[code:2h8sum8u]
$ sudo cp url-decoding.desktop /usr/share/kde4/services/ServiceMenus/
[/code:2h8sum8u]

해주시면 [동작]에서 사용이 가능합니다.

물론 그전에 protochaos님이 만들어주신 스크립트를
/usr/local/bin/url-decoding.sh에 저장해서 사용하시면 됩니다.

gnome 사용자 분들은… 잘 모르겠네요…[/quote:2h8sum8u]

gnome에서 nautilus스크립트로 사용하시려면…

$HOME/.local/share/nautilus/scripts/웹파일명복구 파일 편집

[code:2h8sum8u]#!/bin/bash
IFS=’

FILES=($NAUTILUS_SCRIPT_SELECTED_FILE_PATHS)
bash – /usr/local/bin/url-decoding.sh "${FILES[@]}"
[/code:2h8sum8u]

실행속성 부여
chmod +x $HOME/.local/share/nautilus/scripts/웹파일명복구

이후, 노틸러스를 열고 파일이나 디렉토리 선택 후, 우클릭->스크립트->웹파일명복구 하시면 됩니다.