(defun sanityinc/utf8-locale-p (v) "Return whether locale string V relates to a UTF-8 locale." (and v (string-match "UTF-8" v))) (defun locale-is-utf8-p () "Return t iff the \"locale\" command or environment variables prefer UTF-8." (or (sanityinc/utf8-locale-p (and (executable-find "locale") (shell-command-to-string "locale"))) (sanityinc/utf8-locale-p (getenv "LC_ALL")) (sanityinc/utf8-locale-p (getenv "LC_CTYPE")) (sanityinc/utf8-locale-p (getenv "LANG")))) (when (or window-system (locale-is-utf8-p)) (setq utf-translate-cjk-mode nil) ; disable CJK coding/encoding (Chinese/Japanese/Korean characters) (set-language-environment 'utf-8) (setq locale-coding-system 'utf-8) (set-default-coding-systems 'utf-8) (set-terminal-coding-system 'utf-8) (unless (eq system-type 'windows-nt) (set-selection-coding-system 'utf-8)) (prefer-coding-system 'utf-8)) (provide 'init-locales)