Auf Macos wurde LC_CTYPE auf einen falschen Wert gesetzt - wo für iTerm2 ändern?

1

Auf meinem System ist die Gebietsschemavariable LC_CTYPEauf einen unzulässigen Wert festgelegt, was auf Linux-Systemen zu Problemen führt. Es ist eingestellt auf:

$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

LC_CTYPE=UTF-8ist unter Linux kein legaler Wert; z.B.:

$ ssh front1
Linux front1 3.16.0-7-amd64 #1 SMP Debian 3.16.59-1 (2018-10-03) x86_64

The programs included with the Debian GNU/Linux system are free software;
…
alex@front1 ~> perl
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "en_US"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US").

Aber wo wird überhaupt LC_CTYPEgesetzt? Es ist in keiner Datei in /etcoder $HOME(ich habe ein sudo fgrep -ri LC_CTYPE /etc $HOME).

Ich verwende iTerm2 als Terminalanwendung.

Alexander Skwar
quelle

Antworten:

2

Nach ein bisschen ddg kam ich zu dem Blogeintrag " Richtiges Festlegen von Gebietsschemas in der Mac OSX Terminal-Anwendung" in Remi Bergsmas Blog . Es stellt sich heraus, dass auch iTerm2 eine solche Einstellung hat. Durch das Deaktivieren von iTerm2 wird das Gebietsschema nicht durcheinander gebracht.

iTerm2-Einstellungen -> Gebietsschema

Jetzt ist es so eingestellt:

$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

Was auch nicht so toll ist, da ich mein System auf Schweizerdeutsch eingestellt habe. Die normale Terminalanwendung ist in dieser Hinsicht besser:

$ locale
LANG="de_CH.UTF-8"
LC_COLLATE="de_CH.UTF-8"
LC_CTYPE="de_CH.UTF-8"
LC_MESSAGES="de_CH.UTF-8"
LC_MONETARY="de_CH.UTF-8"
LC_NUMERIC="de_CH.UTF-8"
LC_TIME="de_CH.UTF-8"
LC_ALL=
Alexander Skwar
quelle