이노무 MS, 이노무 UTF-8 BOM

hey의 이미지

VS2005에서 euc-kr로 작성하던 소스 코드를 utf-8로 바꿔야 될 일이 생겼기에 리눅스에서 스크립트를 짜서 한번에 처리하고 커밋했습니다. 여기까진 좋았습니다.

그러나, 이노무 VS2005 에디터가 BOM이 없는 UTF-8은 제대로 읽질 못하는 군요. 얘가 BOM 없는 UTF-8이라고 지정을 해주어야 겨우 읽는거에요. 아니면 메모장에서 읽어서 저장을 하면 BOM이 붙더군요. 이럴 거면 한번에 변환한 보람이 없잖아요 -ㅁ-

리눅스에서 BOM을 자동으로 붙여줄 수 있는 방법이 없을까요?

Prentice의 이미지

for I in *.txt ; do cat /path/to/BOM $I > $I.new && mv $I.new $I ; done

이런 건 어떨까요.. CR/LF 맞춰주는 것도 잊으시면 안되겠네요.

thyoo의 이미지

변환하기 전에 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)

aero의 이미지

UTF-8로 변환전에 이미 BOM을 넣어버리면 EUC-KR문서에 BOM이 들어간 상태에서
변환하게 될것인데 iconv가 BOM을 인식하고 처리하는게 아니고 BOM을 또 다른 문자로
착각하고 제대로 처리가 안되지 않나요?

thyoo의 이미지

file은 temporary file입니다. 변환후 >> file
___________________________________
Less is More (Robert Browning)

___________________________________
Less is More (Robert Browning)

aero의 이미지

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

hey의 이미지

이렇게 처리 했습니다.
aero님 의견에 따라(^^)

{encodefile_utf-8.sh}

if iconv -f cp949 -t utf-8 $1 > $1.utf-8; then
        mv $1.utf-8 $1
        utf8bom -insert -file $1
else
        echo "[FAIL] $1"
        rm $1.utf-8
fi

{encode_utf-8.sh}

find ./ \( -name "*.cpp" -o -name "*.h" \) -exec encodefile_utf-8.sh {} \;


May the F/OSS be with you..



----------------------------
May the F/OSS be with you..


atie의 이미지

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

hey의 이미지

리눅스에서 VIM으로 변환된 파일을 열면 BOM이 보이는데(왠지 feff로 나오지만) 윈도우의 GVIM으로 열면 BOM이 안 보이는군요.

May the F/OSS be with you..



----------------------------
May the F/OSS be with you..


aero의 이미지

아마도 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값이기 때문입니다.

hey의 이미지

설명 고맙습니다 :]

May the F/OSS be with you..



----------------------------
May the F/OSS be with you..


댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.