emacs 와 윈도우 메모장간에 유니코드 호환

nalrim의 이미지


삼바 클라이언트인 윈도우에서 emacs를 사용합니다.
삼바서버에 있는 파일을 네트워크 폴더로 잡아서 emacs에서 작업을 하는거지요.
다른 사람들은 메모장이나 에디터플러스를 사용하는데, 그들끼리는 문제가 없지만
제가 파일을 열면 emacs 화면 아래에 있는 버퍼창 프레임(뭐라고 부르는지 잘 몰라서..)에는 (Unix)라고만 뜨고 한영전환을 할라치면 Can't input method.. 라는 오류메세지가 명령버퍼에 출력됩니다.

한글은 안쓰고도 코딩이 가능하지만 다른 사람이 쓴 한글이 안보여서 에로사항이 많습니다.
emacs 버전은 22.0.93.1 cvs버전이고 .emacs설정에 한글관련 부분은

(set-language-environment "Korean")
(set-w32-system-coding-system 'euc-kr)
(setq-default buffer-coding-system 'euc-kr)
(setq-default keyboard-coding-system 'euc-kr)
(setq-default file-name-coding-system 'utf-8)
 
(set-clipboard-coding-system 'euc-kr)
(set-selection-coding-system 'euc-kr)

삼바서버에 smb.conf 설정에는 charset 설정같은건 하지않았고
/etc/sysconfig/i18n 설정에는 en-US.UTF-8 로 되어있습니다.

중요한것은 이제부터 인데요. 그래서 모든 파일을 메모장으로 열어서
모두 utf-8로 다시 저장했습니다. 너무 무식한 방법이었지만 그 작업이후에는
emacs에서 u(Unix)라고 뜨고 한글도 잘 보이고 다른 윈도우 편집기들과도
호환이 되는듯 합니다.

하지만 emacs로 파일을 열어보면 파일의 시작바이트에 { 이런 문자가 붙어나오거나 공백이 붙어있기도 합니다. 만약 이걸 지우게 되면 emacs에는 한글이 모두 숫자로 나타나더군요.

어떻게하면 emacs에서 이런 문제없이 편집 작업을 할 수 있을까요?

익명사용자의 이미지

UTF-16으로 해보세요.

hayarobi의 이미지

다른 분들은 어느 OS에서 어떤 에디터로 작업하시나요? (그리고 어떤 캐릭터 인코딩을 쓰는지도 알 수 있으면..)
그리고 윈도우즈 메모장의 기본 인코딩은 확장완성형입니다.(uhc,cp949,ms949 등등 여러 이름으로 불리죠) euc-kr와 하위호환성을 가지고 있긴 한데 상위 호환성에는 문제가 있답니다.

=================
잠못자는 한솔아빠

nalrim의 이미지

다른 사람들은 윈도우 2000 Pro과 XP Pro에서 작업을 하고
저는 리눅스(CentOS)와 윈도우XP Pro, 윈도우태블릿OS에서 작업을 합니다.
모두 emacs가 설치되어있는데 버전이 조금씩 다르지만 동일한 현상을 보이네요.

hayarobi의 이미지

emacs버리고 vim쓰세요. ㅡ,.ㅡ;;

재미없는 농담이었습니다.
vim에는 환경 설정에서 fileencodings라는 변수로 인코딩 변환 우선순위를 두고 있습니다. 문서의 내용을 보고 적절한 인코딩을 찾아서 출력하는 하는 것이죠.

제 경우 fileencodinds=utf-8,ucs-bom,uhc,euc-jp,latin1 정도로 맞춰 쓰고 있습니다. 제일 먼저 utf-8문서인지를 확인하고, 아니면 유니코드(ucs2)인지를 찾고, 그것도 아니었으면 확장완성형을 찾게 하고, 계속 그런 식이죠.

제가 이맥스는 잘 몰라서 그런데 이맥스도 비슷한 기능을 하는 게 있지 않을까요? encoding conversion쪽 부분은 찾아보시면 혹 도움될 내용이 있을지 모르겠네요.

그리고 메모장에서 UTF-8로 저장한 것을 읽었을 때 앞에 뭔가 가비지 문자가 있다면 이맥스가 제대로 변환을 못 한 것입니다. 메모장에서 UTF-8이 아닌 유니코드(혹은 유니코드Bigendian)으로 저장한게 아닌가 싶네요. UTF8에는 BOM이 붙지 않습니다. 단위 문자 크기가 2바이트 이상인 ucs2같은 것부터 BOM이 맨 앞에 들어갑니다.

마지막으로, 다른 분들이 쓰는 개발툴, 혹은 에디터에서도 개별적으로 소스코드의 인코딩을 설정할 수 있을 것입니다. 앞으로의 대세를 위해서라도 모두 UTF-8을 쓰도록 설득해 보심이 어떨지요. 안 되면 한 가지로 통일할 수 있도록 맞추시고요.

=================
잠못자는 한솔아빠

nalrim의 이미지

아마도 emacs에서 연 파일의 첫번째 바이트에 위치한 문자는 BOM(Byte Order Mark) 일꺼라 봅니다.
메모장에서 UTF-8로 인코딩을 변경하고 저장하면 이 BOM이 붙는 모양인데요.
제가 쓰는 버전의 emacs는 BOM이 붙은 UTF-8 파일을 이상한 문자로 보여주는게 문제입니다.
안보이게 하는 방법이 있기도 할 것 같은데 모르겠네요.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.