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/05
»
일
월
화
수
목
금
토
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
31
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
유로자전거투어
AutoChina
GPS2014
안드로이드
AOSP
휘닉스파크
야경
서울오토살롱
제주도
청송
그린플러그드
동두천락페스티벌
Win32
DIY
로마
아이폰
북경
A6000
챔피언십
we run seoul
단국대
ASP
벚꽃
java
서울모터쇼
바르셀로나
Android
GPS
나이트레이스
SAAS 2010
greenplugged
폴란드
에어파워데이
포고플러그
사운드홀릭페스티벌
국제모터사이클
펜탁스
SM3
MFC
CJ슈퍼레이스
Archive
티스토리툴바