자바스크립트(JavaScript)에서는 다음의 함수들로, HTML 페이지 주소를 인코딩/디코딩합니다.
encodeURI() / decodeURI()
최소한의 문자만 인코딩합니다.
; / ? : @ & = + $ , - _ . ! ~ * ' ( ) #
이런 문자는 인코딩하지 않습니다.
http:// ... 등은 그대로 나옵니다.
encodeURIComponent() / decodeURIComponent()
알파벳과 숫자 Alphanumeric Characters 외의, 대부분의 문자를 모두 인코딩합니다.
http:// ... 가 http%3A%2F%2F 로 됩니다.
escape() / unescape()
예전부터 있던 오래된 함수입니다. encodeURI() 와 encodeURIComponent() 의 중간 정도의 범위로 문자를 인코딩합니다.
encodeURI, encodeURIComponent, escape 함수 사용 예제
<html>
<body>
<script type="text/javascript">
var s;
s = encodeURI('http://www.google.co.kr/소 설.html');
document.write('<p>' + s + '<p>');
// 출력 결과: http://www.google.co.kr/%EC%86%8C%20%EC%84%A4.html
s = encodeURIComponent('http://www.google.co.kr/소 설.html');
document.write('<p>' + s + '<p>');
// 출력 결과: http%3A%2F%2Fwww.google.co.kr%2F%EC%86%8C%20%EC%84%A4.html
s = escape('http://www.google.co.kr/소 설.html');
document.write('<p>' + s + '<p>');
// 출력 결과: http%3A//www.google.co.kr/%uC18C%20%uC124.html
</script>
</body>
</html>
어떤 함수든 "공백 문자" 즉 스페이스는 %20 으로 치환합니다. 그러나 주소의 공백은 없어야 합니다.
Use this URL Encoding table for special characters:
CharacterCodeCharacterCode
ⓒ | %26%23169; | t | %74 |
® | %26%23174; | u | %75 |
™ | %E2%84%A2 | v | %76 |
backspace | %08 | w | %77 |
tab | %09 | x | %78 |
linefeed | %0A | y | %79 |
creturn | %0D | z | %7A |
space | %20 | { | %7B |
! | %21 | | | %7C |
" | %22 | } | %7D |
# | %23 | ~ | %7E |
$ | %24 | ¢ | %A2 |
% | %25 | £ | %A3 |
& | %26 | ¥ | %A5 |
' | %27 | | | %A6 |
( | %28 | § | %A7 |
) | %29 | ≪ | %AB |
* | %2A | ¬ | %AC |
+ | %2B | ? | %AD |
, | %2C | º | %B0 |
- | %2D | ± | %B1 |
. | %2E | ª | %B2 |
/ | %2F | , | %B4 |
0 | %30 | μ | %B5 |
1 | %31 | ≫ | %BB |
2 | %32 | ¼ | %BC |
3 | %33 | ½ | %BD |
4 | %34 | ¿ | %BF |
5 | %35 | A` | %C0 |
6 | %36 | A´ | %C1 |
7 | %37 | A^ | %C2 |
8 | %38 | A~ | %C3 |
9 | %39 | A¨ | %C4 |
: | %3A | A° | %C5 |
; | %3B | Æ | %C6 |
< | %3C | C¸ | %C7 |
= | %3D | E` | %C8 |
> | %3E | E´ | %C9 |
? | %3F | E^ | %CA |
@ | %40 | E¨ | %CB |
A | %41 | I` | %CC |
B | %42 | I´ | %CD |
C | %43 | I^ | %CE |
D | %44 | I¨ | %CF |
E | %45 | Ð | %D0 |
F | %46 | N~ | %D1 |
G | %47 | O` | %D2 |
H | %48 | O´ | %D3 |
I | %49 | O^ | %D4 |
J | %4A | O~ | %D5 |
K | %4B | O¨ | %D6 |
L | %4C | Ø | %D8 |
M | %4D | U` | %D9 |
N | %4E | U´ | %DA |
O | %4F | U^ | %DB |
P | %50 | U¨ | %DC |
Q | %51 | Y´ | %DD |
R | %52 | Þ | %DE |
S | %53 | ß | %DF |
T | %54 | a` | %E0 |
U | %55 | a´ | %E1 |
V | %56 | a^ | %E2 |
W | %57 | a~ | %E3 |
X | %58 | a¨ | %E4 |
Y | %59 | a° | %E5 |
Z | %5A | æ | %E6 |
[ | %5B | c¸ | %E7 |
\ | %5C | e` | %E8 |
] | %5D | e´ | %E9 |
^ | %5E | e^ | %EA |
_ | %5F | e¨ | %EB |
` | %60 | i` | %EC |
a | %61 | i´ | %ED |
b | %62 | i^ | %EE |
c | %63 | i¨ | %EF |
d | %64 | ð | %F0 |
e | %65 | n~ | %F1 |
f | %66 | o` | %F2 |
g | %67 | o´ | %F3 |
h | %68 | o^ | %F4 |
i | %69 | o~ | %F5 |
j | %6A | o¨ | %F6 |
k | %6B | ÷ | %F7 |
l | %6C | ø | %F8 |
m | %6D | u` | %F9 |
n | %6E | u´ | %FA |
o | %6F | u^ | %FB |
p | %70 | u¨ | %FC |
q | %71 | y´ | %FD |
r | %72 | þ | %FE |
s | %73 | y¨ | %FF |
https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query=테스트
https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query=%ED%85%8C%EC%8A%A4%ED%8A%B8
window.open 으로
get방식으로 보낼시 가끔 정보값이 깨지는경우가 있다.
encodeURIComponent(값);
이런식으로 보내야 한글 깨짐을 막을수 있다..
'IT > Web' 카테고리의 다른 글
PHP의 php.ini 설정에서 register_globals = on/off 차이 (0) | 2020.10.12 |
---|---|
[Javascript] PHP 배열 자바스크립트에서 배열로 받기. (0) | 2016.08.23 |
html, css, js, jquery web 소스 정리 (0) | 2016.08.03 |
[javascript] 특정 IP 막기 , IP 주소가져오기 (0) | 2016.07.20 |
[PHP] php header를 utf-8 로 바꾸기 (0) | 2016.07.19 |