일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- adobe
- starling
- 플렉스
- XAML
- framework
- Air
- 주식
- Silverlight
- 3.0
- Papervision3D
- stage3d
- 아폴로
- 마이크로소프트
- ActionScript
- 실버라이트
- 워렌 버핏
- 아폴로케이션
- 3D
- 책
- Flex
- 플래시
- 액션스크립트
- 도서
- Papervision
- 물리엔진
- API
- Flash
- Genome2D
- 어도비
- Microsoft
- Today
- Total
WonHada.com으로 이전
System.useCodePage 대신 이렇게.. 본문
System.useCodePage = true; 많이들 쓰시나요? 요즘은 UTF-8이 대세여서 그런지 별로 쓸 일이 없습니다..그런데 이번에 RSS 리더를 개발하던 중 문제가 생겼습니다..
RSS 리더에서 불러들인 페이지들의 경우 UTF-8이 아닌 것도 있다는 거죠..네이버 카페가 대표적입니다..EUC-KR을 쓰죠..
EUC-KR의 경우 System.useCodePage = true;를 사용하면 해결됩니다..
그런데 지금 만드는건 RSS리더잖아요..즉, UTF-8도 있고 EUC-KR도 있습니다..다른 인코딩도 있겠죠..
System.useCodePage를 true, false로 변경하면서 해당하는 웹 페이지를 불러오면 될까요?
물론 어느정도 딜레이를 준다면 가능할 듯 합니다..하지만 그렇게 구현하는건 왠지 아닌거 같죠? 속도가 빨라야 하니까요..
그래서 위와 같은 함수를 만들게 되었습니다..
BOM만으로는 UTF-8을 정확하게 잡을 수가 없습니다..없는 경우도 있으니까요..
처음 코드는 위와 달리 조금 더 복잡했습니다..encodeURI()도 사용했고 바이트 어레이를 좀 더 복잡하게 다뤘죠..몇번의 테스트 끝에 위의 코드가 나왔는데요..아래 예제에 적용해 봤습니다..
아직 UTF-8, EUC-KR, UCS2 Big/Little Endian만 테스트를 했을 뿐입니다..즉, 앞으로 다른 경우가 생길 경우 업데이트를 해야 한다는 뜻이죠..
찾게 되면 업데이트 하겠습니다..
* 아래 예제에서는 텍스트를 뿌려줄 때 부하를 막기 위해 800자 까지만 보이도록 했습니다..
** 페이지를 불러올 때 인코딩 정보를 정확하게 알 수 있는 좋은 방법이 있다면 알려주세요^^