Shell Script echo und Umlaute

L

lazybaer

Aktives Mitglied
Thread Starter
Dabei seit
08.02.2006
Beiträge
172
Reaktionspunkte
3
Wenn ich im Terminal 'echo äöü' eingebe, dann bekomme ich auch 'äöü'. So weit so gut.

Wenn ich 'echo äöü >> ~/Desktop/text.txt' eingebe, dann erhalte ich in der Datei

äöü

Was muss ich ändern? Ich habe den PPC englisch aufgesetzt, die Region habe ich Schweiz/deutsch definiert.

Bin froh um jeden Tipp.

Hanspeter
 
AW: Shell Script echo und Umlaute

womit zeigst du text.txt an?
das sind halt unicode zeichen...
 
AW: Shell Script echo und Umlaute

zu jedem Text gehört eine Codierung! Auch Dein Terminal hat eine. Du mußt die Datei in der selben Codierung mit Deine Editor öffnen in der sie auch erstellt wurde!

Der Editor Textwrangler bietet dazu ein "Reopen with encoding..." an! Damit läßt sich die Datei dann erneut einlesen ( vermutlich ist es UTF-8 ohne BOM).
 
AW: Shell Script echo und Umlaute

OneEight: danke, das war der Tipp - schönen Tag noch. HP
 
AW: Shell Script echo und Umlaute

noch ein Umlautproblem:

im folgenden Shell Scripts erhalte ich: f?r anstatt für

#!/bin/sh
echo "xx für Ende"

Bitte um einen Tipp ...
Danke

Hanspeter
 
AW: Shell Script echo und Umlaute

Shell Skript in der richtigen Kodierung gespeichert?
 
Was heisst 'richtige Kodierung'?
 
Hallo,

bei der Arbeit mit multibyte Zeichen (wie z.B. ä ö ü) in der Shell, spielen verschiedene Kriterien und Einstellungen eine Rolle, die aufeinander abgestimmt sein müssen:
  1. Welches Betriebssystem bzw. welche Version. Ältere Systeme können grundsätzliche Problem mit multibyte haben.
  2. Welche Shell. Die Bash arbeitet z.B. mit readline, die Z Shell nicht. readline wertet die Datei .inputrc aus, bei der Z Shell gibt es Optionen, die den Umgang mit multibyte Zeichen beeinflussen.
  3. Welche Version der Shell. Ältere Shells können kein multybyte. Die tcsh ist mW bis heute nicht 8-bit sicher, kann mich aber täuschen.
  4. Umgebungsvariablen, insbesondere $LC_CTYPE, sollte auf die gewünschte Kodierung eingestellt werden. Die Liste der verfügbaren Einstellungen kannst Du Dir im Terminal mit "iconv -l" anzeigen lassen.
  5. Die Einstellung des Terminals, z.B. die Landeseinstellung und die verwendete Emulation.
  6. Die Art der verwendeten Kommandos, manche können einfach mit multybyte Zeichen nicht umgehen. Früher musst man z.B. bei ls mit derm Schalter -w arbeiten um multibyte Zeichen ausgeben zu können.
  7. Bei Scripts, die Kodierung in der das Skript gespeichert wurde. Kann man z.B. im Vvim mit :set encoding anzeigen lassen.
  8. Wenn man sich Dateien mit einem Editor ansieht, kommt es auch noch darauf an, mit welcher Kodierung dieser die Datei öffnet. Nicht alle erkennen Kodierungen immer automatisch.
 
Zurück
Oben Unten