=================================
=================================
=================================
//데이터를 스트링으로 받아 처리해준다.
public String GetRtfFixSymbol(String st)
{
String str = st;
String fix = "\\'";
int fSiz = 0;
int cnt = 0;
String tmp = "";
String sumStr = "";
while(str!=null && str.length() > 0 && str.indexOf(fix)>=0)
{
fSiz = str.indexOf(fix);
tmp = tmp +"0x"+ str.substring(fSiz+2, fSiz+4);
if(cnt >= 1)
{
tmp = hexToString(tmp);
String Incoding;
try
{
Incoding = new String(tmp.getBytes("8859_1"));
}catch(Exception e){return str;}
sumStr = sumStr + "\\0"+Incoding; //문자옵션이 제대로 자바에서 읽기위해 \0로 끈어준다.(중요)
tmp = "";
cnt = 0;
}
else
{
sumStr = sumStr + GetRtfFixPass(str.substring(0, fSiz));
cnt++;
}
str = str.substring(fSiz+4);
}
if(str.length() >0)
{
sumStr = sumStr + str;
}
return sumStr;
}
//자바가 RTF를 해석할수 있게 한칸씩 띄어주는 역확
public String GetRtfFixPass(String st)
{
String str = st;
String fix = " ";
int fSiz = 0;
String tmp = "";
String sumStr = "";
while(str.indexOf(fix)>=0)
{
fSiz = str.indexOf(fix);
tmp = str.substring(fSiz, fSiz+1);
sumStr = sumStr + str.substring(0, fSiz) + " " + "\\0";
str = str.substring(fSiz+1);
}
if(str.length() >0)
{
sumStr = sumStr + str;
}
return sumStr;
}
// 자바에서 RTF의 HEX 데이터 처리
public String hexToString(String hexString) {
Pattern p = Pattern.compile("(0x([a-fA-F0-9]{2}([a-fA-F0-9]{2})?))");
Matcher m = p.matcher(hexString);
StringBuffer buf = new StringBuffer();
int hashCode = 0;
while( m.find() ) {
hashCode = Integer.decode("0x" + m.group(2));
m.appendReplacement( buf, new String( Character.toChars( hashCode ) ) );
}
m.appendTail(buf);
return buf.toString();
}
=================================
=================================
=================================
'JAVA' 카테고리의 다른 글
[java] 자바 map 활용 (0) | 2011.03.16 |
---|---|
[IDE] 이클립스 단축키 모음 (0) | 2011.01.20 |
[java] 자바 외부 프로그램 실행하기(실행경로에 맞추어 정확히) (0) | 2011.01.19 |
[java] JAVA - HTMLEditorKit 브라우져 탭 사용시 객체 문제 (0) | 2010.12.01 |
[java] 자바 애플릿 jar 캐쉬옵션들 (0) | 2010.08.09 |
댓글 영역