Locale-UTF8: Unterschied zwischen den Versionen

Aus
(Überarbeitet)
K (→‎Installation: +Konfig)
Zeile 75: Zeile 75:
     POSIX  
     POSIX  
</pre>
</pre>
==== Konfiguration ====


Ist nun der UTF-8 vorhanden, kann man in seiner Profil-Datei eintragen:
Ist nun der UTF-8 vorhanden, kann man in seiner Profil-Datei eintragen:

Version vom 31. Januar 2014, 20:35 Uhr

Was ist UTF-8? Ein kleine Exkursion:

UTF-8 ist eine Abkürzung für 8-Bit UCS Transformation Format , wobei UCS für „Universal Character Set“ steht. Sie ist die am meisten verbreiteter Standard Kodierung von Unicode-Zeichen. Bei der UTF-8-Kodierung wird jedem Unicode-Zeichen eine speziell kodierte Bytekette variabler Länge zugeordnet. UTF-8 unterstützt bis zu vier Byte, auf die sich wie bei allen UTF-Formaten alle Unicode-Zeichen abbilden lassen.

UTF8 ist ein zentraler Bestandteil als Weltweites Zeichenkodierung im Internet. So unterstützen moderne Browser und Email-Client UTF8 Standardmässig. Neben dem Internet empfiehlt es sich auch lokal auf dem Computer/Server mit dieser Kodierung zu arbeiten.

Synology NAS und UTF-8 Unterstützung

Bei der Dateifreigaben Windows, Mac, Linux besteht bereit eine UTF-8 Unterstützung. Bei FTP muss man in der Systemsteuerung der DMS den UTF8-Support aktivieren. Bei der Shell sieht es anders aus. z.Z. gibt es bei der Standardinstallation keinen UTF-8 Support. Ein Ordner "öäü" sieht dann in der Shell folgendermassen aus:

öäü

Der Grund ist schnell gefunden, es besteht kein UTF-8 Support:

NAS>locale –a
C
POSIX 

Installation

Ziele, Anforderungen und Voraussetzungen

Dieses Beschreibung richtet sich an Administratoren, die sich in der Shell auskennen. Ziel dieses Beitrages ist es, dass man den UTF-8 Support für die Shell installieren kann. Dazu muuß die für den Prozessor der DS und die Version des DSM passende Toolchain heruntergeladen werden.

Beispiel

* System: Synology NAS DS211+
* DSM: 4.0 (2198)

Dann ist die passende Toolchain-Datei gcc421_glibc25_88f6281-GPL.tgz (Marvell 88F628x Linux 2.6.32). Im weiteren gehen wir von diesem Beispiel aus, für andere Systeme heissen die Verzeichnisse arm-none-linux-gnueabi/arm-none-linux-gnueabi anders.

ToolChain herunterladen

wget http://downloads.sourceforge.net/project/dsgpl/DSM%204.0%20Tool%20Chains/Marvell%2088F628x%20Linux%202.6.32/gcc421_glibc25_88f6281-GPL.tgz

Enpacken

tar -zvxf gcc421_glibc25_88f6281-GPL.tgz

Installation

locale Ordner erstellen:

mkdir /usr/lib/locale

Programme kopieren mit der die Daten generiert werden können

cp arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc/usr/bin/locale* /usr/local/bin/


Lokalisierung kopieren

cp -r arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc/usr/share/i18n/ /usr/share


UTF-8 Datei mit dem localedef Tool erzeugen

Englisch/USA

/usr/local/bin/localedef -c -f UTF-8 -i en_US en_US.UTF-8

Deutsch(Schweiz)

/usr/local/bin/localedef -c -f UTF-8 -i de_CH de_CH.UTF-8

Sollte der Befehl nach ca. 10-20 Sekunden beendet sein und keine Fehlermeldung erscheinen so kann man nun prüfen welche Kodierung verfügbar sind:

    /usr/local/bin/locale –a
    C
    en_US.utf8
    de_CH.utf8
    POSIX 

Konfiguration

Ist nun der UTF-8 vorhanden, kann man in seiner Profil-Datei eintragen:

LANG=de_CH.UTF-8
LC_ALL=de_CH.UTF-8
export LANG LC_ALL 

Bei Benutzung von Putty muss man die Verbindungsdaten ändern:

Window>Translation

Character set translation> "Remote character set:" UTF-8


Verbindet man sich jetzt per Shell kann man den UTF-8 Support testen:

    NAS>locale
    LANG=de_CH.UTF-8
    LC_CTYPE="de_CH.UTF-8"
    LC_NUMERIC="de_CH.UTF-8"
    LC_TIME="de_CH.UTF-8"
    LC_COLLATE="de_CH.UTF-8"
    LC_MONETARY="de_CH.UTF-8"
    LC_MESSAGES="de_CH.UTF-8"
    LC_PAPER="de_CH.UTF-8"
    LC_NAME="de_CH.UTF-8"
    LC_ADDRESS="de_CH.UTF-8"
    LC_TELEPHONE="de_CH.UTF-8"
    LC_MEASUREMENT="de_CH.UTF-8"
    LC_IDENTIFICATION="de_CH.UTF-8"
    LC_ALL=de_CH.UTF-8

Somit sieht der Ordner öäü neu folgendermassen aus:

öäü

Anmerkung zu WinSCP/SCP

Bei WinSCP kann man UTF-8 nur mit den Protokollen FTP oder SFTP verwenden. SCP kann von Haus aus nicht UTF-8. Näheres unter:

* http://winscp.net/eng/docs/faq_utf8