Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

emacs et utf8

15 réponses
Avatar
dhajage
Salut !

J'ai un souci sous ubuntu edgy eft et emacs.

Emacs ne m'ouvre ni ne m'enregistre plus mes documents en utf8.

Voici ce qui est marqu=E9 dans mon .emacs :

;; Encodage en utf-8

(prefer-coding-system 'utf-8)

(set-terminal-coding-system 'mule-utf-8) ; pour l'affichage

(set-keyboard-coding-system 'utf-8) ; pour la saisie (eventuelement)

Je pensais que =E7a suffisait, mais impossible d'ouvrir un document avec
le bon encodage, tous mes documents utf8 apparaissent avec des signes
bizarres =E0 la place des accents (c'est =E0 dire qu'emacs les affiche en
format iso).

Sous dapper, ces qq lignes dans mon .emacs suffisaient (enfin, =E7a
marchait en tout cas). Peut =EAtre me manque-t-il un paquet ?

Merci pour votre aide.

10 réponses

1 2
Avatar
Sébastien Kirche
Le 18 novembre 2006 à 17:46, a formulé :

Je pensais que ça suffisait, mais impossible d'ouvrir un document avec
le bon encodage, tous mes documents utf8 apparaissent avec des signes
bizarres à la place des accents (c'est à dire qu'emacs les affiche en
format iso).

Sous dapper, ces qq lignes dans mon .emacs suffisaient (enfin, ça
marchait en tout cas). Peut être me manque-t-il un paquet ?

Merci pour votre aide.



Est-ce que tu as un résultat correct en forçant la lecture de l'utf-8
sur un fichier dont tu es sûr de l'encodage ?

C-x RET c permet de choisir l'encodage utilisé pour la prochaine
commande.

C-x RET c utf-8 RET C-x C-f le_fichier_a_lire RET

--
Sébastien Kirche
Avatar
dhajage
Merci de ta réponse.

J'ai essayé ce que tu m'as dit. Mais non, les caractères accentués
sont tjs affiché avec un A bizzarre suivi d'un "c" cerclé, même avec
ta commande qui spécifie l'encodage du fichier...
C'est un fichier que j'ai créé avec l'éditeur de texte de gnome et
enregistré en utf-8. Lorsque j'enregistre ce document en iso 8...,
emacs l'ouvre correctement.

Me manque-t-il un paquet permettant à emacs de lire l'utf8 ?

Sébastien Kirche a écrit :

Le 18 novembre 2006 à 17:46, a formulé :

> Je pensais que ça suffisait, mais impossible d'ouvrir un document avec
> le bon encodage, tous mes documents utf8 apparaissent avec des signes
> bizarres à la place des accents (c'est à dire qu'emacs les affiche en
> format iso).
>
> Sous dapper, ces qq lignes dans mon .emacs suffisaient (enfin, ça
> marchait en tout cas). Peut être me manque-t-il un paquet ?
>
> Merci pour votre aide.

Est-ce que tu as un résultat correct en forçant la lecture de l'utf-8
sur un fichier dont tu es sûr de l'encodage ?

C-x RET c permet de choisir l'encodage utilisé pour la prochaine
commande.

C-x RET c utf-8 RET C-x C-f le_fichier_a_lire RET

--
Sébastien Kirche
Avatar
Sébastien Kirche
Le 21 novembre 2006 à 08:08, s'est exprimé ainsi :

Merci de ta réponse.



Merci de répondre _en dessous_ du texte que tu cites, ça évite de devoir
faire défiler le message pour savoir de quoi on parle.

J'ai essayé ce que tu m'as dit. Mais non, les caractères accentués
sont tjs affiché avec un A bizzarre suivi d'un "c" cerclé, même avec
ta commande qui spécifie l'encodage du fichier...



'é' est caractéristique d'un 'é' codé en utf-8 mais visualisé en
iso-8859-1[5]. Je suppose que le buffer n'est pas dans le bon encodage
malgré les réglages que tu indiques.

C'est un fichier que j'ai créé avec l'éditeur de texte de gnome et
enregistré en utf-8. Lorsque j'enregistre ce document en iso 8...,
emacs l'ouvre correctement.

Me manque-t-il un paquet permettant à emacs de lire l'utf8 ?



Il faudrait plus d'informations :

- quelle version d'Emacs ? (M-x emacs-version RET)

- est-ce qu'il y a autre chose dans ton .emacs que les 3 lignes que tu
as citées ? Il pourrait y avoir un réglage contradictoire plus bas
dans le fichier. Pour l'affectation de variables c'est évidemment la
dernière qui compte

- qu'indique M-x describe-coding-system RET RET lorsque tu visualises le
fichier défectueux ?

--
Sébastien Kirche
Avatar
Bastien
Sébastien Kirche writes:

Il faudrait plus d'informations :

- quelle version d'Emacs ? (M-x emacs-version RET)



Oui - c'est "the" question. Parce qu'à mon avis il suffit de virer de
ton .emacs les lignes contenant une référence quelconque à l'encodage.

--
Bastien
Avatar
Sébastien Kirche
Le 21 novembre 2006 à 11:07, Bastien s'est exprimé ainsi :

> - quelle version d'Emacs ? (M-x emacs-version RET)

Oui - c'est "the" question. Parce qu'à mon avis il suffit de virer de
ton .emacs les lignes contenant une référence quelconque à l'encodage.



User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/23.0.0 (gnu/linux)

Oui, mais avec ta version c'est pas du jeu ;)

Qu'est-ce que ça donne maintenant la v23 ? J'avais essayé l'année
dernière ou en début de cette année mais le port MacOS X n'était pas
trop utilisable pour mon usage.
Tu le compiles toi-même ?
--
Sébastien Kirche
Avatar
Bastien
Sébastien Kirche writes:

User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/23.0.0 (gnu/linux)
Oui, mais avec ta version c'est pas du jeu ;)



... héhéhé ...

Qu'est-ce que ça donne maintenant la v23 ? J'avais essayé l'année
dernière ou en début de cette année mais le port MacOS X n'était pas
trop utilisable pour mon usage.



Je ne pourrais pas trop dire, j'utilisais déjà emacs-snapshot(-gtk) et
je n'ai pas encore vu de différence majeure.

J'ai compilé cette 23.x.x pour avoir les fonts anti-aliasées. C'est
assez impressionnant d'avoir un emacs avec du vrai verdana - mais en
fait je ne trouve pas ça agréable à la longue. Je reste avec mon bon
vieux -monotype-andale mono-medium-r-normal--13-0-0-0-c-0-iso8859-15

En tous cas plus de soucis d'encodage... - même avec ERC quand on est
simultanément sur bitlbee et irc.freenode.org ;)

--
Bastien
Avatar
Bastien
Bastien writes:

J'ai compilé cette 23.x.x pour avoir les fonts anti-aliasées. C'est
assez impressionnant d'avoir un emacs avec du vrai verdana - mais en
fait je ne trouve pas ça agréable à la longue. Je reste avec mon bon
vieux -monotype-andale mono-medium-r-normal--13-0-0-0-c-0-iso8859-15



<http://www.emacswiki.org/cgi-bin/wiki/XftGnuEmacs> et les captures
d'écran qui vont avec...

--
Bastien
Avatar
Sébastien Kirche
Le 21 novembre 2006 à 11:52, Bastien s'est exprimé ainsi :

> Qu'est-ce que ça donne maintenant la v23 ? J'avais essayé l'année
> dernière ou en début de cette année mais le port MacOS X n'était pas
> trop utilisable pour mon usage.

Je ne pourrais pas trop dire, j'utilisais déjà emacs-snapshot(-gtk) et
je n'ai pas encore vu de différence majeure.



J'utilise également emacs-snapshot sur cette machine (sous Debian)

J'ai compilé cette 23.x.x pour avoir les fonts anti-aliasées. C'est
assez impressionnant d'avoir un emacs avec du vrai verdana - mais en
fait je ne trouve pas ça agréable à la longue. Je reste avec mon bon
vieux -monotype-andale mono-medium-r-normal--13-0-0-0-c-0-iso8859-15



J'ai vu emacs-snapshot-gtk dernièrement mais je préfère le non-gtk dans
mon windowmaker avec une police à chasse fixe repompée par mes soins du
monaco 8 (ou 9) pt du mac. Donc la version gtk n'a pas d'intérêt pour
moi.

En tous cas plus de soucis d'encodage... - même avec ERC quand on est
simultanément sur bitlbee et irc.freenode.org ;)



*ÇA* par contre ça m'intéresse beaucoup... Je vais retourner regarder la
v23 de plus près.
--
Sébastien Kirche
Avatar
dhajage
Sébastien Kirche a écrit :

Le 21 novembre 2006 à 08:08, s'est exprimé ainsi :

> Merci de ta réponse.

Merci de répondre _en dessous_ du texte que tu cites, ça évite de d evoir
faire défiler le message pour savoir de quoi on parle.

> J'ai essayé ce que tu m'as dit. Mais non, les caractères accentués
> sont tjs affiché avec un A bizzarre suivi d'un "c" cerclé, même a vec
> ta commande qui spécifie l'encodage du fichier...

'é' est caractéristique d'un 'é' codé en utf-8 mais visualis é en
iso-8859-1[5]. Je suppose que le buffer n'est pas dans le bon encodage
malgré les réglages que tu indiques.

> C'est un fichier que j'ai créé avec l'éditeur de texte de gnome et
> enregistré en utf-8. Lorsque j'enregistre ce document en iso 8...,
> emacs l'ouvre correctement.
>
> Me manque-t-il un paquet permettant à emacs de lire l'utf8 ?

Il faudrait plus d'informations :

- quelle version d'Emacs ? (M-x emacs-version RET)

- est-ce qu'il y a autre chose dans ton .emacs que les 3 lignes que tu
as citées ? Il pourrait y avoir un réglage contradictoire plus bas
dans le fichier. Pour l'affectation de variables c'est évidemment la
dernière qui compte

- qu'indique M-x describe-coding-system RET RET lorsque tu visualises le
fichier défectueux ?

--
Sébastien Kirche



Alors :

- la version d'emacs retournée est : GNU emacs 21.4.1
- Voici mon .emacs :

(custom-set-variables
;; custom-set-variables was added by Custom -- don't edit or
cut/paste it!
;; Your init file should contain only one such instance.
'(boxquote-top-and-tail "------")
'(cal-tex-diary t)
'(cal-tex-holidays nil))

;; Molette souris
(when window-system
(mwheel-install))

;; répertoir défaut
(setq default-directory "/home/david/")


;; Affiche le numéro de ligne et de colonne
(column-number-mode t)
(line-number-mode t)

;; Autorise la séléction à l'aide de la touche SHIFT
(custom-set-variables '(pc-selection-mode t nil (pc-select)))

;; Affiche l'heure au format 24h
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)

;; Les 'beep' deviennent visibles (et non plus audibles)
(setq visible-bell t)

;; Afficher la 'parenthèse correspondante'
(require 'paren)
(show-paren-mode)

;; Pas de message au lancement d'emacs
(setq inhibit-startup-message t)

;; Pas de menu
;(tool-bar-mode nil)
;(menu-bar-mode nil)

;; colorisation de la syntaxe ...
(global-font-lock-mode t)
;; ...avec le maximum de couleurs
(setq font-lock-maximum-decoration t)

;; Agrandissement de la fenêtre
;(if window-system
; (setq initial-frame-alist '((width . 140) (height . 30)))
;)

; Laisser le curseur en place lors d'un défilement par pages.
; Par défaut, Emacs place le curseur en début ou fin d'écran
; selon le sens du défilement.
(setq scroll-preserve-screen-position t)

; Mise en surbrillance des lignes sélectionnées et écrasement
de ces
; dernières lorsqu'on saisit du texte dans la foulée.
(progn
(delete-selection-mode 1)
(transient-mark-mode 1)
)

; C'est fastidieux de taper « yes » pour confirmer,
raccourcissons
; cela à « y » (idem pour « no », désormais  « n
»).
(fset 'yes-or-no-p 'y-or-n-p)


; Supprimer les fichiers de sauvegarde en quittant.
; (vous savez, ces fameux fichiers dont le nom se termine par « ~
»)
(setq make-backup-files nil)

; Pour l'impression, du papier au format A4 est utilisé
(setq ps-paper-type 'a4)

;; Raccouris clavier
(global-set-key [f1] 'find-file)
(global-set-key [f2] 'save-buffer)
(global-set-key [f9] 'ess-eval-region)
(global-set-key [(meta g)] 'goto-line)
(global-set-key [(control tab)] `switch-to-buffer)
(global-set-key [(control z)] `undo)
(global-set-key "C-a" (quote mark-whole-buffer))
(global-set-key [f8] 'kill-this-buffer)
(global-set-key [f10] 'ess-eval-buffer)
(global-set-key [f12] 'R)
(global-set-key [(control ")] 'uncomment-region)
(global-set-key [(meta ")] 'comment-region)
(global-set-key [(meta up)] 'beginning-of-buffer)
(global-set-key [(meta down)] 'end-of-buffer)
(global-set-key [(meta left)] 'beginning-of-line)
(global-set-key [(meta right)] 'end-of-line)

(put 'narrow-to-region 'disabled nil)

;; Pour mettre en surbrillance la région séléctionnée
(transient-mark-mode t)

;; Active les accents
(standard-display-european 1)

;;automatically close brackets, quotes, etc when typing
(defun insert-parentheses () "insert parentheses and go between them"
(interactive)
(insert "()")
(backward-char 1))
(defun insert-brackets () "insert brackets and go between them"
(interactive)
(insert "[]")
(backward-char 1))
(defun insert-braces () "insert curly braces and go between them"
(interactive)
(insert "{}")
(backward-char 1))
(defun insert-quotes () "insert quotes and go between them"
(interactive)
(insert """")
(backward-char 1))
(global-set-key "(" 'insert-parentheses) ;;inserts "()"
(global-set-key "[" 'insert-brackets)
(global-set-key "{" 'insert-braces)
(global-set-key """ 'insert-quotes)

;; Encodage en utf-8
(prefer-coding-system 'utf-8)
(set-terminal-coding-system 'mule-utf-8) ; pour l'affichage
(set-keyboard-coding-system 'utf-8) ; pour la saisie (eventuelement)

L'encodage des caractère arrive donc en dernier dedans. Comme tu peux
le voir, les accents des commentaires s'affiche mal...

- Voici enfin ce que me retourne la dernière commande :

Coding system for saving this buffer:
t -- raw-text-dos
Default coding system (for new files):
u -- mule-utf-8 (alias: utf-8)
Coding system for keyboard input:
u -- utf-8 (alias of mule-utf-8)
Coding system for terminal output:
nil
Defaults for subprocess I/O:
decoding: u -- mule-utf-8 (alias: utf-8)
encoding: u -- mule-utf-8 (alias: utf-8)

Priority order for recognizing coding systems when reading files:
1. mule-utf-8 (alias: utf-8)
2. iso-latin-1 (alias: iso-8859-1 latin-1)
3. iso-2022-jp (alias: junet)
4. iso-2022-7bit
5. iso-2022-7bit-lock (alias: iso-2022-int-1)
6. iso-2022-8bit-ss2
7. emacs-mule
8. raw-text
9. japanese-shift-jis (alias: shift_jis sjis)
10. chinese-big5 (alias: big5 cn-big5)
11. no-conversion (alias: binary)

Other coding systems cannot be distinguished automatically
from these, and therefore cannot be recognized automatically
with the present coding system priorities.

The followings are decoded correctly but recognized as
iso-2022-7bit-lock:
iso-2022-7bit-ss2 iso-2022-7bit-lock-ss2 iso-2022-cn
iso-2022-cn-ext
iso-2022-jp-2 iso-2022-kr

Particular coding systems specified for certain file names:

OPERATION TARGET PATTERN CODING SYSTEM(s)
--------- -------------- ----------------
File I/O ".elc'" (emacs-mule . emacs-mule)
"(`|/)loaddefs.el'"
(raw-text . raw-text-unix)
".tar'" (no-conversion . no-conversion)
"" (undecided)
Process I/O nothing specified
Network I/O nothing specified

J'espère t'avoir fourni suffisamment de choses... Merci bcp pour votre
aide à tous !
Avatar
Sébastien Kirche
Le 21 novembre 2006 à 18:31, a dit :

;; Encodage en utf-8
(prefer-coding-system 'utf-8)
(set-terminal-coding-system 'mule-utf-8) ; pour l'affichage
(set-keyboard-coding-system 'utf-8) ; pour la saisie (eventuelement)

L'encodage des caractère arrive donc en dernier dedans. Comme tu peux
le voir, les accents des commentaires s'affiche mal...



Oui. Remarque si ton texte est bien utf-8 au départ, G2 l'a passé en
latin-1 donc ça peut expliquer le problème pour ce message.

Effectivement on voit dans le résultat de describe-coding-system que tes
réglages sont pris en compte

Default coding system (for new files):
u -- mule-utf-8 (alias: utf-8)
Coding system for keyboard input:
u -- utf-8 (alias of mule-utf-8)



Seulement on a l'explication du mauvais affichage du fichier car :

Coding system for saving this buffer:
t -- raw-text-dos



En effet l'affichage raw (brut) est équivalent à l'iso-8859-1 pour
afficher des caractères utf-8 (qui utilisent 2 octets par caractère).

Je soupçonne un problème au niveau de l'association entre les types de
fichiers et les encodages (dans file-coding-system-alist), par exemple
une regexp avec une erreur, mais pour le moment je n'ai rien vu en
lisant ton .emacs en diagonale. Par contre j'ai vu des trucs à
abandonner comme le standard-display-european.

Faudrait que je relise mais je n'en ai pas le temps pour l'instant.
Peut-être un collègue pourra t'aider en attendant, sinon je reviens
là-dessus plus tard dans la soirée.

--
Sébastien Kirche
1 2