이노무 MS, 이노무 UTF-8 BOM
글쓴이: hey / 작성시간: 수, 2006/09/27 - 12:39오후
VS2005에서 euc-kr로 작성하던 소스 코드를 utf-8로 바꿔야 될 일이 생겼기에 리눅스에서 스크립트를 짜서 한번에 처리하고 커밋했습니다. 여기까진 좋았습니다.
그러나, 이노무 VS2005 에디터가 BOM이 없는 UTF-8은 제대로 읽질 못하는 군요. 얘가 BOM 없는 UTF-8이라고 지정을 해주어야 겨우 읽는거에요. 아니면 메모장에서 읽어서 저장을 하면 BOM이 붙더군요. 이럴 거면 한번에 변환한 보람이 없잖아요 -ㅁ-
리눅스에서 BOM을 자동으로 붙여줄 수 있는 방법이 없을까요?
Forums:
for I in *.txt ; do cat
for I in *.txt ; do cat /path/to/BOM $I > $I.new && mv $I.new $I ; done
이런 건 어떨까요.. CR/LF 맞춰주는 것도 잊으시면 안되겠네요.
변환하기 전에 BOM을
변환하기 전에 BOM을 붙이시면 됩니다.
$echo -e \xEF\xBB\xBF > file
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/unicode_42jv.asp
___________________________________
Less is More (Robert Browning)
___________________________________
Less is More (Robert Browning)
UTF-8로 변환전에 이미 BOM을 넣어버리면
UTF-8로 변환전에 이미 BOM을 넣어버리면 EUC-KR문서에 BOM이 들어간 상태에서
변환하게 될것인데 iconv가 BOM을 인식하고 처리하는게 아니고 BOM을 또 다른 문자로
착각하고 제대로 처리가 안되지 않나요?
file은 temporary
file은 temporary file입니다. 변환후 >> file
___________________________________
Less is More (Robert Browning)
___________________________________
Less is More (Robert Browning)
utf8bom
UTF-8 에 BOM( http://en.wikipedia.org/wiki/Byte_Order_Mark )이
그게 필요하냐 안하냐를 떠나서 윈도우와 유닉스계열을 넘나드는 사람들에게는
참 귀찮게 하는것일 수 도 있을것 같습니다.
어떻게든 앞에 EF BB BF 헥사값을 넣는 스크립트만 짜서 돌리면 되는데
Perl 모듈중에
UTF8BOM http://search.cpan.org/~lyokato/UTF8BOM-1.01/lib/UTF8BOM.pm
이란게 있습니다. 이걸 깔면
다음처럼 명령어를 사용하여 BOM을 빼고 추가 가능합니다.
utf8bom -insert -dir /path/to/dir -recursive
utf8bom -strip -file /path/to/file
감사합니다
이렇게 처리 했습니다.
aero님 의견에 따라(^^)
{encodefile_utf-8.sh}
{encode_utf-8.sh}
May the F/OSS be with you..
----------------------------
May the F/OSS be with you..
xml로 자료 교환하는
xml로 자료 교환하는 시스템을 한 적이 있었는데 데이타 변환시 에러가 나서 한참 인코딩 관련 코드를 보다가 썬더버드에서 그 xml를 상대방에게 첨부하면서 BOM을 보게 되었다는 글을 이 곳에 쓴 것이 생각이 나는군요. 그 쪽에서는 누가 윈도우즈 에디터로 그 xml을 편집했는지 끝까지 함구했었다는...
----
I paint objects as I think them, not as I see them.
Ubuntu Edgy user / Ubuntu KoreanTeam
----
I paint objects as I think them, not as I see them.
atie's minipage
이상한게
리눅스에서 VIM으로 변환된 파일을 열면 BOM이 보이는데(왠지 feff로 나오지만) 윈도우의 GVIM으로 열면 BOM이 안 보이는군요.
May the F/OSS be with you..
----------------------------
May the F/OSS be with you..
아마도 win32 vim에서는
아마도 win32 vim에서는 컴파일시 기본으로 BOM을 알아서 채크하도록 되어있는것 같습니다.
vimrc파일에
set fileencodings=ucs-bom,utf-8,euc-kr
이런식으로 파일인코딩사용 우선순위를 적어주는데
ucs-bom은 bom을 자동 채크하여 알맞은 유니코드 인코딩을 사용하는 옵션입니다.
리눅스에도 ucs-bom 옵션을 먼저주면 아마 BOM을 인식하고 feff가 안보일겁니다.
feff가 나오는 이유는 BOM을 BOM으로 보지 않고 UTF-8으로 변환했을때의 hex값이기 때문입니다.
아, 그렇군요
설명 고맙습니다 :]
May the F/OSS be with you..
----------------------------
May the F/OSS be with you..
댓글 달기