아래 문자가 euc-kr 문서에 삽입돼 있으면 커스텀 rss 를 불러올 수 없는데... 블록

『』이 문자인데 아스키 코드표에서 제어문자 ETX(End Of Text) 16진수론 0x03 입니다. 제가 84번 포트 서버에서 론스타 관련 문서를 다른 사이트에서 스크랩하는 과정에서 서두의 문자가 삽입이 돼서 84번 포트 서버 메인페이지에 있는 rss 버튼을 클릭했을 때 나오는 100페이지 가량의 문서가 로드되지 못하는 현상이 있었습니다.
(지금은 이 문자를 제거해 정상적으로 rss 가 불러와집니다. http://run.iptime.org:84/rss )

근데 황당한 건 rss 버튼을 클릭했을 때 아무런 에러 메시지도 표시해 주지 않고 덜렁 "Could not load XML..." 이란 메시지만 보여주면서 어느 페이지 어느 글자에서 에러가 뜨는지 브라우저에서 전혀 알려주지 않는다는 사실입니다. 이 문제 찾느라 최근에 올린 문서들을 일일이 비밀글로 전환하고 로드를 반복하는 과정을 거치면서 문제가 발생하는 포스트를 찾을 수 있었는데 이미지를 보시면 아시겠지만 마지막 끝부분에 ETX란 제어문자가 삽입이 돼 있는 걸 알 수 있습니다.

혹 euc-kr 을 사용하는 분들은 포스트 작성할 때 참고하시기 바랍니다. rss를 로드할 때 이런 특이점이 존재합니다. 브라우저 에러메시지가 이런 문제점을 제대로 캐치해 주지 못하기 때문에 이 점은 차후 개선이 되었으면 하는 바램이 있습니다.

<추신>
서두의 제어문자는 IE8에선 보이고 크롬에선 보이지 않습니다. 참고하세요.

[XML 파싱 에러나는 문서 내용 - 끝에 제어문자가 삽입돼 있는 걸 알 수 있습니다]


덧글

  • Hide_D 2015/05/29 09:17 # 답글

    utf-8 좀 쓰라고 몇번을 말합니까.....

    앞으로 utf-8외에는 지원 계획조차 없는 녀석들 많은데,
    RSS 같이 API 연동할 용도면 iconv라도 물려서 utf-8로 출력하시죠.
  • Miyun_86 2015/05/29 09:18 # 삭제

    진짜 공부할 생각이 없어서 우물 안 개구리 심정으로 자기가 아는 것만 하겠다라는 입장이면 프로그래머라는 소리 좀 안 하길 빌 뿐이고, 최소한의 상식이 있으면 추세라도 읽어서 euc-kr를 버려야 하는데 자기 코드가 완벽하다고 우기는 인간이 그런 결정하기가 쉽지는 않겠죠...

    아직도 웹에서 유니코드 사용할 수 없다는 소리나 되풀이할것으로 보입니다.
  • Miyun_86 2015/05/29 09:21 # 삭제

    아니, 전 글 보니까 답 없군요. 아직도 본인은 전에 유니코드 관련 내용이 자기가 맞다고 확신중입니다.(......)

    http://blrun.egloos.com/m/comment/11169555/page/5
    희망의빛™ 42분전
    무슨소리 하시는지... 유니코드에 관해서 다들 잘 이해를 못하시는 것 같에서 엘레시엘님 덧글에 추가답글을 달았는데 보셨는지 모르겠네요. 거기에 제가 참고한 블로그 주소도 나옵니다만...
  • 루루카 2015/05/29 09:58 #

    유니코드가 왜 나왔고, UTF-8이 뭔지만 조금 생각해봐도 하시기 어려운 주장이실텐데...
    안타깝게도... 일방통행이세요.
  • Hide_D 2015/05/29 10:57 #

    Miyun_86 // 우와... 이쯤되면 이분은 튜링 테스트라도 한번 돌려봐야되나요? ㅋㅋㅋㅋ
  • Miyun_86 2015/05/29 13:57 # 삭제

    Hide_D // 의미없는 결과만 나올것 같으니 전 패스할렵니다(......)

    - 근데 진짜 사람이 교차검증같은 것도 안하고 한길만 보는 것은 미친 짓인데... 말이죠......
  • 희망의빛™ 2015/05/29 16:04 #

    그럼 2바이트 일반 유니코드를 웹페이지에서 사용할 수 있는 신택스를 한번 알려주시죠. UTF-8도 3바이트 유니코드지만 제가 알려드린 블로그에선 일반 2바이트 유니코드와 구분해서 설명하고 있습니다만... charset=euc-kr 완성형과 charset=utf-8 유니코드 한글 인코딩 설정 말고 다른 유니코드 설정이 있으면 대답해 보시죠. 전 그걸 알고 싶다는 것입니다.
  • shaind 2015/05/29 15:28 #

    누가 마음대로 '2바이트 일반 유니코드'입니까? 유니코드 개념을 전혀 잘못 이해하고 있네요.(애초에 유니코드는 2바이트도 아니죠.)

    유니코드는 유니코드고 인코딩은 인코딩입니다.
    컴퓨터상에서 인코딩 방법 없이 유니코드란 게 따로 존재할 수 없습니다. 'utf-8로 인코딩된 유니코드', 'utf-16으로 인코딩된 유니코드' 같은 것이 존재할 뿐이죠. utf-8같은 인코딩으로 브라우저가 유니코드를 다룰 수 있는데 왜 인터넷에서 유니코드를 못 쓰나요? 못 쓰는 건 특정 인코딩이지 유니코드가 아닙니다.
  • 희망의빛™ 2015/05/29 16:16 #

    그럼 유니코드가 utf-8과 uft-16 이렇게 두가지고 둘다 웹 charset= 에 지정해 사용할 수 있다는 이야기인가요?

    그럼 utf-16이 한글과 영문을 모두 2바이트로 표현하는 유니코드란 이야기인가요? 제가 말씀드린 블로그에선 애플리케이션에서 사용하는 2바이트 유니코드를 말하고 있는 것 같던데... 그럼 그 내용은 틀린 겁니까?

    2바이트 영문 유니코드가 실제로 존재합니까?
  • shaind 2015/05/29 17:11 #


    희망의빛님이 참조했다는 블로그 내용은 이렇습니다.

    =================================

    일반 유니코드(Unicode)와 'UTF-8 유니코드'의 차이점, 차이

    (1) 보통의 한국어 텍스트 문서: 이것은 아스키 문서이며 유니코드가 아닙니다. 영문/숫자/기호는 1바이트. 한글과 한자는 2바이트로 표현됩니다. euc-kr 또는 ksc_c_5601-1987 로 불리는 인코딩이며 웹페이지 작성에 사용할 수 있습니다. 특수한 외국어 문자나 일본식/중국식 한자는 표현할 수 없습니다.

    다음의 2개가 유니코드입니다:

    (2) 일반 유니코드(Unicode): 모든 글자를 2바이트로 표현합니다. 전세계 모든 글자들을 한꺼번에 표현할 수 있습니다. 인터넷에 HTML 파일로 올릴 수 없습니다. 즉 웹페이지 작성에 쓸 수 없습니다.

    (3) UTF-8 유니코드: 영문/숫자/기호는 1바이트로, 한글과 한자 등은 3바이트로 표현합니다. 전세계 모든 글자들을 한꺼번에 표현할 수 있습니다. 웹페이지 작성에 쓸 수 있습니다. (저의 mwultong.blogspot.com 이 블로그도 UTF-8 로 되어 있습니다)

    MS윈도우2000/XP 이상에서는, 외부적으로는 '일반 아스키 인코딩(1번)'을 사용하고, 내부적으로는 '일반 유니코드(2번)'를 사용합니다.

    유닉스/리눅스/오픈소스 진영에서는 (1)번 또는 'UTF-8 유니코드(3번)'를 기본으로 사용합니다.

    그렇지만 윈도 메모장에서도 UTF-8 유니코드 문서를 읽고 저장할 수는 있습니다.]



    ===============================


    이 내용도 물론 엄밀히 말하면 틀린 거죠. '일반 유니코드'라는 말 자체가 정확한 용어가 아닌 겁니다. 지금 웹에서 일반적으로 쓰이고 있는 유니코드는 utf-8로 인코딩된 유니코드인데, 그럼 '일반 유니코드' = utf-8인가요????

    사실 위 글에서 '일반 유니코드'라는 건 utf-16 내지는 ucs-2를 말하는 건데, 이렇게 해석해도 위 내용은 여전히 기술적으로는 틀린 부분이 있습니다. 사실 utf-16은 2바이트가 아니기 때문입니다. 2바이트내로 표기할 수 있는 것만 2바이트로 표기하고, 더 넓은 범위의 문자는 4바이트로 표기하기 때문이지요.

    (utf-8이 '일반 유니코드'와는 다른 특별한 무언가라는 잘못된 생각이 흔히 퍼진 건, 윈도우 메모장의 인코딩 변환 메뉴에서 utf-16을 '유니코드', utf-16 big endian을 '유니코드(big endian)'이라고 써놓고, utf-8은 utf-8이라고 써놨기 때문이죠. 그러니까 희망의빛님이 유니코드에 대해 엉터리로 알고 있는 건 모두 마소의 음모입니다!!!)

    =================================

    utf-16 으로 인코딩된 문서는 charset= 이 먹히지 않습니다.
    charset= 이 먹히려면 그 문서가 ascii코드와 호환성이 있어야 하는데, utf-8로 인코딩된 문서는 ascii문자들은 전부 ascii코드와 같은 8비트 코드로 표기합니다만, utf-16은 ascii문자들도 모두 16비트 코드로 표기해놔서 호환되지 않기 때문입니다.

    원래라면 브라우저가 유니코드 문서 맨 앞에 있는 BOM이라는 걸 읽어들여서 이게 utf-8인지 utf-16인지 utf-16 big endian인지 자동으로 알아먹어 줘야 합니다. 안된다면 브라우저 기능에 뭔가 이상이 있는 거죠. 근데 요새 인터넷에서 utf-16을 써야 할 하등의 이유가 없다시피 해서, 이 기능에 문제가 있어도 실제로 뭔가 문제될 일은 거의 없는 것 같더군요.
    (BOM에 관해서는 http://skmagic.tistory.com/entry/BOM-Byte-Order-Mark-%EC%A0%95%EC%9D%98%EC%99%80-%EB%AC%B8%EC%A0%9C 참조)
  • blrun 2015/05/29 14:19 # 삭제 답글

    이 아저씨 블로그 주소가 blrun인데 진짜 빌런 아닐까요.
    밸리의 빌런..
  • 닉네 2015/05/29 15:55 # 삭제 답글

    윈도 xp에 비유니코드까지.... 총체적 난국이네요
  • 조현병도풍년 2015/05/29 18:00 # 삭제 답글

    에라이 썩을놈아...
    병신도 급이 있는데, 이 색기는 코앞에 밥을 쳐가져다 줘도 자기가 떠먹는 밥 외에는 밥이 아니라고 우기는 색기다 진짜.
    병원가 병원! 조현병 치료나 받으면서 인터넷 끊고 살어!
  • 소시민 제이 2015/05/29 19:32 # 답글

    뭐랄까... 몇 년도에 사세요? 인터넷 극초기 시절 사시나요?
    익스플로러를 5를 쓰세요? 아니 저게 적용이 되기는 하나? 애초에?

    저걸 하고싶으시면 오리지널을 만들어서 그걸 국제표준화 시키시던가요.
    (그런데 저거 하실 능력은 되세요? 뭐.. 국립국어원도 무식한 놈들이라고 하시니, 아~주 대단한 분인거 같습디다.
    어디 MIT 학과주임교수 정도는 하시나봐. 아니면 그냥 책 보고 하나씩 배우시던가.
    동네 술처먹은 주정뱅이가 지가 옳다고 지랄쳐대면서 시비거는거랑 동급으로 보이는 꼴사나움이니, 자제 좀 하시고.)
  • 오오 2015/05/30 01:07 #

    주인장분이 나름 생활의 의미를 찾은 것이 윈도우XP+제로보드4 시절이니 그무렵 기술들에 강한 집착을 보이시는 것 같습니다.
  • 희망의빛™ 2015/05/30 14:05 # 답글

    제어문자가 보였는데 이글루스에서 소스 수정했네요. 이제 ETX 제어 문자가 보이질 않습니다. ㅋㅋ. 그 사이 소스를 수정했군요.

    아니 제 오픈소스 게시판에 올려 놓았던 제어문자도 안보이는데요? 어떻게 된거죠? MS의 소행인가? 스크랩 "론스타" 관련글 출처에도 해당 제어문자가 보이질 않네요? 그럼 이건 순전히 MS의 소행인 건가요? 아니 업데이트도 안하고 제어문자 표시를 제어할 수가 있는 모양이네요. 완전 저 새 된 기분이네요. 진짜에요. MS의 소행인가 봐요. ㅋㅋ

    아니네요. 익스플로어8에선 제어문자가 보이고 크롬과 FF에선 제어문자가 보이질 않습니다. 이게 올바르게 해석한 현상입니다. ㅋㅋ
댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


웹로그 검색