UTF-16 without BOM

17 views
Skip to first unread message

idkay0

unread,
Sep 9, 2007, 7:36:01 AM9/9/07
to squirrelusers-kr
UTF-16을 지원해서 아무생각 없이 쓰고 있었는데, 로딩을 못하는 문제가 발생! 확인을 해보니 "UTF-16 Big
Endian without BOM" 과 "UTF-16 without BOM"은 읽지 못하더군요. UTF-8은 BOM이 없어도 작
동을 하는데, UTF-16은 BOM이 없으면 읽지를 못하네요.
혹시 유니코드 프로젝트 진행하시는 분이 계신지요? 저는 이제 시작하고 있고, 아직까지는 문제없습니다...앞으로도 큰문제 없겠
죠??

vicpose

unread,
Sep 9, 2007, 10:13:26 PM9/9/07
to squirrelusers-kr
역시나 비슷하게 UTF8N도 읽지 못하는 것 같습니다만..
저는 UTF8 쓰고 있어서 아직까지 큰 문제를 겪은적은 없습니다.

yagur

unread,
Sep 10, 2007, 10:10:41 AM9/10/07
to squirrelusers-kr

(non-posix)윈도우에서 작성한 유니코드 파일들은 시그니쳐(BOM)를 가지고 있지만, 그 외(리눅스, 유닉스)는 시그니처
를 사용하지 않는 문제 때문인 것같습니다.
몇몇 텍스트 에디터에서 BOM 시그니처를 사용하지 않도록 설정해서 저장할수 있습니다. 이럴경우 문제가 되겠지요. 왜냐면
squirrel은 시그니처를 기본적으로
읽게 되어있습니다. sqstd_loadfile함수를 보시면 앞에 2바이트 시그니처를 읽게 되어있습니다. UTF-8일 경우엔 3바
이트지만요.

Squirrel의 태생이 VS에서 개발되서 그런것 같군요. UTF-8N도 시그니처가 없이 UTF-8을 사용하는 경우입니다(하지
만 이것은 마이크로 소프트가 정한 방식이고
posix에서는 시그니처를 아예 사용하지않습니다.). 일단 표준(ISO 10646-1)은 엔디안 구분을 하지 않습니다. MS가
BOM을 넣어서 UCS-2(UTF-16 빅엔디안과 UTF-16 리틀 엔디안), 그리고 UTF-8을 구분하고 있습니다.
일단 Squirrel은 MS의 방식을 따르고 있습니다.(비주얼 스튜디오나 MS의 Notepad에서 작성한 코드라면 BOM을 지닐
수 밖에 없기때문입니다) . 일단 Squirrel에서 문제가 없으려면 스크립트에 BOM이 포함되어야겠군요. 표준을 지원해야겠따
면 sqstd_loadfile를 수정하고 스크립트 에디터도 다른것을 사용해야겠군요.

Reply all
Reply to author
Forward
0 new messages