2

I've just installed 24.5 on SUSE, and I have no windowing available, so I am using emacs in the terminal window. When I choose 'Read the Emacs Manual' from the 'Help' Menu, I see (for example) "type \u2018h\u2019 to read a basic introduction".

The other answers related to this topic seem to indicate the problem is with how the file is loaded. But, since this is the help, I don't have any obvious way to affect that. I can mostly not care about this, but it does make reading the help very difficult.

Does anyone have any insight into what configuration changes are necessary?

2 Answers2

2

You can set the coding system that your terminal uses by adding the following to your init file:

(set-terminal-coding-system 'utf-8)

utf-8 is often what you want, but to get a list of other possible values, you can use M-x list-coding-systems.

elethan
  • 4,755
  • 3
  • 29
  • 56
1

FWIW I've have a collection of coding system settings, which is largely copy/paste from elsewhere (and thus I could not say with certainty that they are all required), but may be of interest:

(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8) ;; also see `my-frame-config'
(set-keyboard-coding-system 'utf-8)
(set-locale-environment "en_NZ.UTF-8")
(setq-default buffer-file-coding-system 'utf-8)
(when (boundp 'default-buffer-file-coding-system) ;; obsolete since 23.2
  (setq default-buffer-file-coding-system 'utf-8))
;; Treat clipboard input as UTF-8 string first; compound text next, etc.
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))

Of particular note to this question, however, is that you set the terminal coding system on a per-terminal basis, which means you should be reacting to new frames.

(e.g. With Emacs running as a server, set the terminal coding system, then in a completely separate terminal connect to the server and inspect the terminal coding system, and you'll note that it's the default value.)

More generally, various Emacs variables are terminal-local, such that setting them in one terminal does not affect their value in other terminals. See C-hig (elisp) Multiple Terminals RET for more details.

If you are certain that you can reliably use a particular coding system in all of your terminals, you can do something like this:

;; Per-frame/terminal configuration.
(defun my-frame-config (frame)
  "Custom behaviours for new frames."
  (with-selected-frame frame
    ;; do things
    (unless window-system
      ;; Terminal configuration
      (set-terminal-coding-system 'utf-8))
    ))
;; Run now, for non-daemon Emacs...
(my-frame-config (selected-frame))
;; ...and later, for new frames / emacsclient
(add-hook 'after-make-frame-functions 'my-frame-config)
phils
  • 48,657
  • 3
  • 76
  • 115
  • When you say "with Emacs running as a server", which commands are used to do this? And can you please point to something that describes this topic more fully? I'm intrigued! Thx. – Derrell Durrett Jan 21 '16 at 16:44
  • In the manual: `C-h r m` `Emacs Server` – phils Jan 21 '16 at 20:12