help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: how to change file coding system


From: Martin Monsorno
Subject: Re: how to change file coding system
Date: Wed, 17 Aug 2005 11:20:00 +0200
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux)

Peter Dyballa <Peter_Dyballa@Web.DE> writes:

> Am 16.08.2005 um 11:22 schrieb Martin Monsorno:
>
>> ,----
>> | monsorno@mmdev ~/work/workspace.c/gmx $ file bla*
>> | bla.eclipse: UTF-8 Unicode text
>> | bla.emacs:   ISO-8859 text
>> `----
>>
>> Opening "bla.eclipse" with emacs, shows me the string
>> "�berfall".  Changing the file encoding with "C-x <RET> f
>> iso-latin-1-unix" and saving leads to:
>
> The correct way would have been, once you've opened the file 
> bla.eclipse and Emacs came up showing `-0:´ as start of the mode-line 
> (stating ISO Latin-1 or ISO Latin-15 encoding), C-x <RET> r utf-8-unix 
> <RET>: re-open the file in UTF-8 encoding, to view it in its natural 
> mood.

Hmm, I cannot make something showing off in the modeline, regardless
of how I open one of the files (I tried to open bla.eclipse with
both iso-8859-1 and utf-8 specified).  (describe-variable
'buffer-file-coding-system) says:

  buffer-file-coding-system's value is raw-text-unix
  Local in buffer bla.eclipse; global value is mule-utf-8

AND this output is the same with file "bla.emacs", which is a
8859-latin1 file. :-?

> When you now save the file in ISO Latin-1 encoding, having applied C-x 
> <RET> f (set-buffer-file-coding-system), GNU Emacs does the conversion. 
> Instead of C3 BC it writes only FC. The file size will be reduced by 
> one byte.

To make it just more exciting, I tried something more:

1) Created a file called "bla.created-by-emacs" containing the string
   "überfall" with emacs.
2) Copied this file to "bla.changed-by-eclipse".
3) Opened this file with eclipse.
4) Saved this file with eclipse.
5) Created a new file with eclipse "bla.created-by-eclipse" containing
   the same string.
6) ls -l bla*
 -rw-r--r--  1 monsorno users 11 17. Aug 11:00 bla.changed-by-eclipse
 -rw-r--r--  1 monsorno users 10 17. Aug 10:35 bla.created-by-eclipse
 -rw-r--r--  1 monsorno users  9 17. Aug 10:58 bla.created-by-emacs
7) file bla*
 bla.changed-by-eclipse: UTF-8 Unicode text
 bla.created-by-eclipse: UTF-8 Unicode text
 bla.created-by-emacs:   ISO-8859 text
8) Visiting bla.changed-by-eclipse with emacs shows "�berfall"
9) Visiting bla.chreated-by-eclipse with emacs shows "überfall"

So we now have 3 files containing the "same" string, 2 of them claim
to be utf-8, but they use a different encoding (2 or 3 bytes).  For
all 3 files, when opening the in emacs, buffer-file-coding-system's
value is raw-text-unix.  Emacs can only display "bla.created-by-emacs"
correctly, eclipse can only display "bla.created-by-eclipse"
correctly.

> The C-x RET commands *do not* change a buffer's (or a file's) contents, 
> they just put some new skin on the buffer so that your view on the 
> buffer's (i.e. file's) contents is adapted in a certain way: you can 
> see a buffer's (or file's) whatever contents in green, blue, red, 
> yellow, cyan ... utf-8, Mac-Roman, NeXT, koi-r8, euc-jp-unix ... 
> encoding/view.

I think I understood this.  But this means that I can change the
file-encoding of a file with emacs, doesn't it?

> Eclipse might be fooling you. The character `ü´ is encoded in UTF-8 as 
> C3 BC or, translating the two hex codes into ISO Latin-1 (or -15) 
> characters, as: à ³. What you cite in your eMail, � or in HTML 
> &iuml;&iquest;&frac12;, is *not* UTF-8.

Yes, or at least, it does not look like an 'ü' ;-)

What I cite in my mails are the strings as emacs shows them to me when
loading one of the files.  So the question is, /why/ are they not
UTF-8?  Does eclipse do a wrong latin-1 to utf-8 conversion?


-- 
Martin


reply via email to

[Prev in Thread] Current Thread [Next in Thread]