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