Shinnara's Blog
Talking with Shinnara :: NaraTalk.com


요즘 이기종 플랫폼에서 서비스를 위해 작업을 하다보니 많은 내용들을 새롭게 알게 됩니다. 정말 배우는 즐거움이란...^^

어제 오늘 열심히 파헤친 분야는 바로 Encoding ...  어제는 W3C 사이트에서 많은 자료를 읽고, 오늘은 UTF-8 처리에 대해 Survey 를 하였다. 그러면서 개발 환경을 모두 UTF-8 로 바꾸기 위한 작업도 함께 했다.

제일 먼저 한건 eclipse 에서 기본 encoding 을 UTF-8 로 바꾼 것..
자주 쓰는 텍스트 에디터인 AcroEdit 도 UTF-8 으로 변경
윈도우에서 FreeBSD 에 접속하기 위해 Zterm 을 주로 썼는데, UTF-8 이 안되는 이유로 Putty 로 변경

어서 모든 환경에서 UTF-8 만 쓰였으면 좋겠다는 말도 안되는 생각을 하며...

개발하고 있는 부분에 UTF-8 처리를 구현하는 과정에서 알게 된 팁 한가지.. 어찌보면 정말 당연한 것인데 한참 헤맬뻔 했다.

바로 소켓 통신시 인코딩 문제.. 보통 String 데이터를 보내기 위해 getBytes() 를 하는데, 이때 charset 을 지정하지 않으면 시스템의 기본 설정으로 인코딩 된다는것... 이 좋은 사실을 알려준 사이트는 여기.

위 사이트에 있는 것처럼 코드를 작성하여 돌려보았다.

public class EncodingTest {
    public static void main(String[] args)
    {
        System.out.println("file.encoding=" + System.getProperty("file.encoding"));
    }
}


내 FreeBSD 6.2 에서 돌려본 결과

file.encoding=ISO8859-1


윈도우 XP 에서 돌려본 결과는

file.encoding=MS949


Linux 에서 돌려보니

file.encoding=EUC-KR


이렇게 나오는것이다. 만약 이 세 머신들이 각각 소켓통신을 하면서 아스키 이외의 문자를 주고 받는다면 그 결과는 뻔한것 아닌가...

소켓 프로그래밍을 하는 데 있어 꼭 필요한 팁이 아닌가 싶다.


update : 글을 올리고 위의 블로그를 보다보니 좋은 내용이 있어서 공유합니다.

javascript 의 escape 함수를 java로 구현

public static String escape(String string){
       StringBuffer sb = new StringBuffer();
       String ncStr = "*+-./0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
       char c;
      
       for(int i=0;i<string.length();i++){
              c = string.charAt(i);
              if(c>0x7f)
                     sb.append("%u" + Integer.toHexString((int)c).toUpperCase());
              else if(ncStr.indexOf((int)c)==-1){
                     sb.append('%');
                     if(c<=0xf)
                            sb.append('0');
                     sb.append(Integer.toHexString((int)c).toUpperCase());
              }
              else
                     sb.append(c);
       }
      
       return sb.toString();
}

0 Trackback, 0 Comment

TRACKBACK :: http://naratalk.com/trackback/124 관련글 쓰기

댓글을 달아 주세요

1  ... 189 190 191 192 193 194 195 196 197  ... 264 
다...... (264)
Computer/Programming (106)
Links (14)
책 읽는 즐거움 (7)
끄적임 (66)
즐거운 과학 나라 (7)
일본 (5)
Study (4)