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

editer des fichiers utf-8

13 réponses
Avatar
octane
Bonjour,

je cherche a modifier des fichiers qui sont utf-8:
$ file fr.po
fr.po: UTF-8 Unicode PO (gettext message catalogue) text

quand je fais un vi sur ce fichier j'obtiens:
msgstr "Voulez vous =C3=A9craser ce fichier ?"

au lieu des accents.

Maintenant, je souhaite modifier ce fichier et surtout le garder en
utf-8.

Comment faire?

Merci

10 réponses

1 2
Avatar
Pascal Bourguignon
writes:

Bonjour,

je cherche a modifier des fichiers qui sont utf-8:
$ file fr.po
fr.po: UTF-8 Unicode PO (gettext message catalogue) text

quand je fais un vi sur ce fichier j'obtiens:
msgstr "Voulez vous écraser ce fichier ?"

au lieu des accents.

Maintenant, je souhaite modifier ce fichier et surtout le garder en
utf-8.

Comment faire?


Utiliser emacs.

--
__Pascal Bourguignon__ http://www.informatimago.com/

"Debugging? Klingons do not debug! Our software does not coddle the
weak."

Avatar
octane
je cherche a modifier des fichiers qui sont utf-8:
$ file fr.po
fr.po: UTF-8 Unicode PO (gettext message catalogue) text

quand je fais un vi sur ce fichier j'obtiens:
msgstr "Voulez vous écraser ce fichier ?"

ici, au lieu du beau e accent, j'ai deux caracteres hyeroglyphiques


bien entendu (la conversiond oit etre du au navigateur ou a
google groups).

au lieu des accents.

Maintenant, je souhaite modifier ce fichier et surtout le garder en
utf-8.

Comment faire?


Utiliser emacs.

non.



Avatar
FAb
writes:

[...]
Maintenant, je souhaite modifier ce fichier et surtout le garder en
utf-8.

Comment faire?


Utiliser emacs.



"Tu te moques ?"
"vi vi"


non.



Plus sérieusement emacs et vi savent manipuler l'UTF8 sans trop de soucis. (Je
trouve cela moche pr emacs mais bon).
Dans mon .emacs y a ça :

;;; utf-8 **********************************************************************
(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
;(set-language-environment 'latin-1)
(set-language-environment 'utf-8)



Pour vi, je ne sais pas trop, une version récente devrait le faire toute
seule. Sinon y a un système de balise à mettre sur la dernière ligne du dit
fichier.

a+
FAb



Avatar
Erwann ABALEA
Bonjour,

Hodie III Non. Aug. MMVI est, FAb scripsit:
[...]
Pour vi, je ne sais pas trop, une version récente devrait le faire toute
seule. Sinon y a un système de balise à mettre sur la dernière ligne du dit
fichier.


Je confirme. Je n'ai eu qu'à configurer mon environnement en UTF-8,
avec la variable LANG qui va bien, le LESS_CHARSET itou, etc, et vim
fait de l'UTF-8 tout seul. Il charge même des fichiers qui sont
encodés en ISO8859-1, les convertit en interne en UTF-8, et quand je
sauvegarde, ça reste du ISO8859-1, par exemple.
Et tout ça avec zsh-beta, XFCE4, sur une Debian testing.

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
RJ> j'ai eu des cookies sur mon HD et j'ai un peu peur des représailles
Il faut reformater ton disque dur et le jetter depuis le 3e étage de la
tour Eiffel pour le détruire irrémédiablement sans laisser de traces.
-+- LP in <http://neuneu.mine.nu&gt; : Par ici ou parano c'est pareil -+-

Avatar
Sébastien Kirche
Le 3 août 2006 à 17:51, FAb s'est exprimé ainsi :

Dans mon .emacs y a ça :

;;; utf-8
;;; **********************************************************************
(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
;(set-language-environment 'latin-1)
(set-language-environment 'utf-8)


Méfie toi du set-language-environment : il repositionne des variables en
fonction du langage qui lui est passé en argument, ce qui écrase
certains de tes réglages faits juste avant.

Tu devrais placer cette fonction au début, ou regarder du côté de
language-info-alist les réglages effectués. C-h v language-info-alist RET

HTH.
--
Sébastien Kirche

Avatar
Vincent Lefevre
Dans l'article ,
FAb écrit:

(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
;(set-language-environment 'latin-1)
(set-language-environment 'utf-8)


Pour certains, mieux vaut s'adapter aux locales:

(when (not window-system)
(set-keyboard-coding-system locale-coding-system)
(set-terminal-coding-system locale-coding-system)
)

et laisser locale-coding-system comme il est.

Tu peux toujours avoir besoin de te connecter sur ta machine par ssh
à partir d'un terminal qui n'est pas en UTF-8.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/&gt;
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/&gt;
Work: CR INRIA - computer arithmetic / SPACES project at LORIA

Avatar
Vincent Lefevre
Dans l'article ,
Erwann ABALEA écrit:

Je confirme. Je n'ai eu qu'à configurer mon environnement en UTF-8,
avec la variable LANG qui va bien, le LESS_CHARSET itou, etc, et vim
fait de l'UTF-8 tout seul.


Mais avec emacs, on peut très bien étider un fichier en UTF-8 avec
des locales en ISO-8859-1.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/&gt;
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/&gt;
Work: CR INRIA - computer arithmetic / SPACES project at LORIA

Avatar
Sébastien Kirche
Le 5 août 2006 à 10:41, Vincent Lefevre a formulé :

Pour certains, mieux vaut s'adapter aux locales:

(when (not window-system)
(set-keyboard-coding-system locale-coding-system)
(set-terminal-coding-system locale-coding-system)
)

et laisser locale-coding-system comme il est.

Tu peux toujours avoir besoin de te connecter sur ta machine par ssh
à partir d'un terminal qui n'est pas en UTF-8.


Je note ça, que je vais tester dès demain.

Je fais pas mal d'éditions en ce moment sur un emacs localisé en latin-0
depuis un putty (qui doit être en 1251/1252 ou utf) et j'ai pas mal de
soucis avec le clavier, principalement un pavé numérique inutilisable,
ainsi que quelques autres touches.

Le paramétrage d'emacs pour le terminal, surtout en accès distant, n'a
jamais été très clair pour moi entre les réglages d'emacs, ceux des
locales et ceux du term distant...
--
Sébastien Kirche

Avatar
Marc Lasson
Vincent Lefevre wrote:

Mais avec emacs, on peut très bien étider un fichier en UTF-8 avec
des locales en ISO-8859-1.



Et pas avec vim ?
Je me trompe peut-être mais pour ça il suffit de positionner la
variable encoding pour choisir l'encodage utilisé (et la valeur
par défaut dépends des locales).

--
Marc.
http://lasson.homelinux.net

Avatar
Sébastien Kirche
Le 6 août 2006 à 23:14, Sébastien Kirche vraute :

Le 5 août 2006 à 10:41, Vincent Lefevre a formulé :

Pour certains, mieux vaut s'adapter aux locales:

(when (not window-system)
(set-keyboard-coding-system locale-coding-system)
(set-terminal-coding-system locale-coding-system)
)

et laisser locale-coding-system comme il est.

Tu peux toujours avoir besoin de te connecter sur ta machine par ssh
à partir d'un terminal qui n'est pas en UTF-8.


Je note ça, que je vais tester dès demain.

Je fais pas mal d'éditions en ce moment sur un emacs localisé en
latin-0 depuis un putty (qui doit être en 1251/1252 ou utf) et j'ai
pas mal de soucis avec le clavier, principalement un pavé numérique
inutilisable, ainsi que quelques autres touches.

Le paramétrage d'emacs pour le terminal, surtout en accès distant, n'a
jamais été très clair pour moi entre les réglages d'emacs, ceux des
locales et ceux du term distant...


Bon ça ne change rien à mon problème mais je le garde quand même car ça
me semble assez correct.

En fait je crois que le souci ne vient pas directement de putty mais de
screen que j'utilise pour survivre aux déconnexions (il s'agit de
joindre emacs sur ma machine perso via ma connexion résidentielle).

Pour putty, j'ai légèrement corrigé la config avec :
- home / end key : standard (au lieu de rxvt) ce qui me corrige les
touches home end (et Fxx semble-t-il)

Le problème qui persiste c'est que les touches du pavé numérique
fonctionnent sans le numlock, mais avec celui-ci j'ai une erreur « M-O p
is undefined » pour le zéro, p étant remplacé par q, r, s... suivant la
touche. Hors emacs mais toujours dans screen le pavé numérique
fonctionne .

J'ai bien touvé une solution (mais j'ai l'impression de contourner le
problème et pas de le résoudre), elle consiste en :
(global-set-key "eOp" "0")
(global-set-key "eOq" "1")
(global-set-key "eOr" "2")
(global-set-key "eOs" "3")
(global-set-key "eOt" "4")
(global-set-key "eOu" "5")
(global-set-key "eOv" "6")
(global-set-key "eOw" "7")
(global-set-key "eOx" "8")
(global-set-key "eOy" "9")
(global-set-key "eOl" "+")
(global-set-key "eOQ" "/")
(global-set-key "eOR" "*")
(global-set-key "eOS" "-")
(global-set-key "eOn" ".")

Qu'en pensez-vous ?

Je vais faire suivre vers le groupe car je crois qu'on ne traite plus
tellement d'unix. Je sais que les spécialistes qui pourraient peut-être
m'aider y sont également abonnés :)

Crosspost & Followup-To: fr.comp.applications.emacs
--
Sébastien Kirche


1 2