Date: Tue, 09 Sep 2008 08:26:25 +0300 From: Giorgos Keramidas <keramida@ceid.upatras.gr> To: Gary Kline <kline@thought.org> Cc: FreeBSD Mailing List <freebsd-questions@freebsd.org> Subject: Re: how can i use ISO-8859-1?? Message-ID: <8763p5yjni.fsf@kobe.laptop> In-Reply-To: <20080909043503.GA21663@thought.org> (Gary Kline's message of "Mon, 8 Sep 2008 21:35:07 -0700") References: <20080909043503.GA21663@thought.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 8 Sep 2008 21:35:07 -0700, Gary Kline <kline@thought.org> wrote: > Guys, > > This is one of the I've-been-meaning-to-ask questions; but other > things keep happening that took precedence. Now it's time to ask what > are the voodoo commands to set up in my ~/.zshrc or other initiation > files (probably including my muttrc) that will let me print to stdout, > characters like the "e-aigu" or "u-umlaut" and the currency pound or > Euro? > > I keep running into '\240' characters that are likely M$ format > commands. [...] That's not really an ISO 8859-1 problem, but a locale setup issue. In my .bashrc file I have the following: # Locale setup. export LANG="C" export LC_CTYPE="el_GR.ISO8859-7" export LC_COLLATE="el_GR.ISO8859-7" unset LC_ALL LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME You can use something similar to set things up for `en_US.ISO8859-1': # Locale setup. export LANG="C" export LC_CTYPE="en_US.ISO8859-1" export LC_COLLATE="en_US.ISO8859-1" unset LC_ALL LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME If you want _everything_ to be displayed using the standard en_US conventions for en_US.ISO8859-1, you can alternatively use: export LANG="C" export LC_ALL="en_US.ISO8859-1" unset LC_CTYPE LC_COLLATE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME and let LC_ALL override everything. A slightly better idea (which doesn't hardcode LANG and LC_ALL for all shell instances) is to configure your personal `.login_conf' file with something like: me:\ :charset=iso-8859-1:\ :lang=en_US.ISO8859-1:\ :setenv=LC_ALL=en_US.ISO8859-1: With this in place you will get the 'correct' environment regardless of the login shell you are using: bash, csh or zsh. Note: By avoiding hardcoded locale setup in your shell startup file you can even spawn sub-shells with different locales. Here's how a zsh session with `en_US.ISO8859-1' can spawn a ksh session with a Greek locale for example: zsh> env | egrep '^(LANG|LC_ALL)' LANG=en_US.ISO8859-1 LC_ALL=en_US.ISO8859-1 zsh> env LANG='el_GR.ISO8859-7' LC_ALL='el_GR.ISO8859-7' ksh ksh$ mutt Note that this is only ``half of the setup'' though. You will then have to make sure that your terminal emulator can display ISO 8859-1 text correctly, by choosing an appropriate font set. The xlsfonts(1) and the fc-list(1) utilities can show you a list of installed fonts: # xlsfonts | fgrep '8859-1' # fc-list Pick one that includes ISO 8859-1 characters, and off you go :)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8763p5yjni.fsf>