XE 개발 도중 발견한 IE6의 버그입니다.
모든 IE6에서 발생하는 것은 아니지만, 일부에서는 분명 발생하고 있습니다. 관련한 버그 리포팅을 받고, 테스트용으로 똑같은 IETester를 WindowsXP SP3와 Windows7에 각각 설치했었는데, XP에서는 발생하지 않았고 Windows7에서는 발생했습니다. 해외에서도 비슷한 사례가 보고된 바 있습니다. 단, 해외와는 달리 frame을 포함하지 않아도 발생한다는 것이 저희가 발견한 사례입니다.
버그 발생 조건은 이렇습니다.
혹시나 싶어 gzip 압축 전송 옵션을 사용하지 않았더니 아무런 문제없이 정상동작하는 것을 확인했습니다.
해결책을 여러 가지 방법으로 찾아보았으나 결국 ‘IE6의 버그’라는 말만 있을 뿐 마땅한 대안은 없는 듯 합니다. 안 그래도 느린 IE6인데, 성능을 높이기 위한 gzip 전송마저 못하게 한다면 더 느려질 수 밖에 없습니다.
IE6를 업그레이드 해야할 이유가 하나 더 늘었습니다.
간혹 다음과 같이 HTML 엔티티 형태로 표현된 문자열을 만날 때가 있습니다.
파이어폭스
이를 PHP에서 일반적인 형태의 문자열로 바꿔주려면 다음과 같은 코드를 사용하면 됩니다.
$str = '파이어폭스'; echo preg_replace_callback('/&#[0-9]+;/', 'unichar', $str); function unichar($match) { return mb_convert_encoding($match[0], 'UTF-8', 'HTML-ENTITIES'); }