Blah-ging
Various. 그때그때 다른 관심사.
by 고추장불고기
Tag
Media Log
Location Log
Guest Book
Admin
Write
Article Category
분류 전체보기
(500)
사진&여행
(207)
국내
(87)
공연/행사
(58)
전시
(20)
2014 중국 북경
(11)
2014 폴란드
(7)
2015 유럽
(17)
Private
(92)
일상
(67)
영화이야기
(10)
사진(보호)
(14)
Self Work
(8)
DIY
(10)
미분류
(41)
Equivment
(36)
Knowledge
(89)
C/C++/VC++
(13)
Java
(7)
Android
(21)
WebProgramming
(16)
Database
(2)
Objective-C&XCode
(2)
기타
(28)
탈것
(16)
SM3[08년식]
(9)
CBR125[06년식]
(7)
Recent Article
Recent Comment
Calendar
«
2024/11
»
일
월
화
수
목
금
토
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
My Link
drcarter의 HelloWorld!
Javascript의 unescape, Java(JSP)에서 사용하기
|
Knowledge/Java
2008. 6. 9. 10:37
Posted by 고추장불고기
역시나 개인적인 필요로 의해......
입력값중 %RE 등등... 헥스값이 아닌 경우엔 입력값 그대로 출력함.
(Language : java)
public
static
String
unescape
(
String
inp
)
{
String
rtnStr =
new
String
(
)
;
char
[
]
arrInp = inp.
toCharArray
(
)
;
int
i;
for
(
i=
0
;i<arrInp.
length
;i++
)
{
if
(
arrInp
[
i
]
==
'%'
)
{
String
hex;
if
(
arrInp
[
i
+1
]
==
'u'
)
{
//유니코드.
hex = inp.
substring
(
i
+2
, i
+6
)
;
i +=
5
;
}
else
{
//ascii
hex = inp.
substring
(
i
+1
, i
+3
)
;
i +=
2
;
}
try
{
rtnStr +=
new
String
(
Character
.
toChars
(
Integer
.
parseInt
(
hex,
16
)
)
)
;
}
catch
(
NumberFormatException
e
)
{
rtnStr +=
"%"
;
i -=
(
hex.
length
(
)
>
2
?
5
:
2
)
;
}
}
else
{
rtnStr += arrInp
[
i
]
;
}
}
return
rtnStr;
}
Character.toChars()가 1.5부터 지원,
1.4 환경에서 사용가능한 unescape.
(Language : java)
public
static
String
unescape
(
String
inp
)
{
String
rtnStr =
new
String
(
)
;
char
[
]
arrInp = inp.
toCharArray
(
)
;
int
i;
for
(
i=
0
;i<arrInp.
length
;i++
)
{
if
(
arrInp
[
i
]
==
'%'
)
{
String
hex;
String
str;
if
(
arrInp
[
i
+1
]
==
'u'
)
{
//유니코드.
hex = inp.
substring
(
i
+2
, i
+6
)
;
i +=
5
;
}
else
{
//ascii
hex = inp.
substring
(
i
+1
, i
+3
)
;
i +=
2
;
}
try
{
byte
[
]
b;
if
(
hex.
length
(
)
==
2
)
{
b =
new
byte
[
1
]
;
b
[
0
]
=
(
byte
)
(
Integer
.
parseInt
(
hex,
16
)
)
;
str =
new
String
(
b,
"ASCII"
)
;
}
else
{
b =
new
byte
[
2
]
;
b
[
0
]
=
(
byte
)
(
Integer
.
parseInt
(
hex.
substring
(
0
,
2
)
,
16
)
)
;
b
[
1
]
=
(
byte
)
(
Integer
.
parseInt
(
hex.
substring
(
2
,
4
)
,
16
)
)
;
str =
new
String
(
b,
"UTF-16"
)
;
}
rtnStr += str;
}
catch
(
NumberFormatException
e
)
{
e.
printStackTrace
(
)
;
rtnStr +=
"%"
;
i -=
(
hex.
length
(
)
>
2
?
5
:
2
)
;
}
catch
(
Exception
e
)
{
}
}
else
{
rtnStr += arrInp
[
i
]
;
}
}
return
rtnStr;
}
공유하기
게시글 관리
Blah-ging
'
Knowledge
>
Java
' 카테고리의 다른 글
엄한 녀석을 빼버리는 Proguard...
(0)
2013.01.30
Java SE 7 : 새로운 코딩 기법 소개
(0)
2011.07.30
[Java] 좌표계간 변환 클래스
(0)
2011.04.04
특정 디렉토리 내 파일목록 가져오기
(2)
2008.02.12
Enterprise Distributed Technologies 의 FTPClient클래스를 이용한 Java에서의 파일업로드
(1)
2008.02.12
And
Tag Cloud
제주도
Android
CJ슈퍼레이스
북경
나이트레이스
안드로이드
국제모터사이클
GPS
사운드홀릭페스티벌
청송
DIY
휘닉스파크
로마
SM3
그린플러그드
SAAS 2010
에어파워데이
Win32
greenplugged
챔피언십
MFC
동두천락페스티벌
A6000
펜탁스
AOSP
ASP
서울오토살롱
아이폰
서울모터쇼
유로자전거투어
AutoChina
we run seoul
바르셀로나
벚꽃
폴란드
야경
포고플러그
GPS2014
단국대
java
Archive
티스토리툴바