url를 Encoding하는 방법

사용자들이 직접 작성하는 실전팁!

Moderator: Dry8r3aD

Post Reply
별님
Posts: 577
Joined: 2012/01/11 Wed 9:38 pm
Contact:

url를 Encoding하는 방법

Post by 별님 » 2013/09/22 Sun 11:01 am

[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 --> 안녕하세요?

User avatar
loscane
Posts: 696
Joined: 2012/02/22 Wed 6:29 pm

Re: url를 Encoding하는 방법

Post by loscane » 2013/09/22 Sun 4:54 pm

참 착하디 착한 정규식이군요! 자주 활용하겠습니다. ㅎㅎㅎ
"May the SUDO be with you" ;)

ubuntu 12.04 32bit, 인텔 쿼드코어 2.5, DDR2 4기가
crunchbang, 도시바 L20, 인텔 셀러론 M 싱글코어 1.6, DDR 450메가
http://kimsg1984.tistory.com/

protochaos
Posts: 1714
Joined: 2011/05/19 Thu 7:43 pm

Re: url를 Encoding하는 방법

Post by protochaos » 2013/09/23 Mon 4:17 pm

[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인코딩인지 체크해서 파일명을 바꿔주는 스크립트입니다.

별님
Posts: 577
Joined: 2012/01/11 Wed 9:38 pm
Contact:

Re: url를 Encoding하는 방법

Post by 별님 » 2013/09/27 Fri 7:35 am

예제가 잘못됐네요.
[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

debpolaris
Posts: 195
Joined: 2010/07/18 Sun 12:03 am
Contact:

Re: url를 Encoding하는 방법

Post by debpolaris » 2013/10/14 Mon 5:25 pm

[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 사용자 분들은... 잘 모르겠네요...

protochaos
Posts: 1714
Joined: 2011/05/19 Thu 7:43 pm

Re: url를 Encoding하는 방법

Post by protochaos » 2013/10/14 Mon 8:41 pm

[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/웹파일명복구

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

Post Reply