Az alkalmazások túlnyomó többsége a használandó nyelvet és karakterkészletet, valamint ha terminálban fut, akkor a terminál vélt karakterkészletét a LANG, valamint az LC_ kezdetű (például LC_ALL, LC_MESSAGES, LC_CTYPE stb.) környezeti változókból szedi. Parancsértelmezőben adjuk ki az „echo $LANG” parancsot a LANG értékének megtekintéséhez, illetve gépeljük be (záró Enter nélkül) hogy „echo $LC_” és üssük le a Tabulátor billentyűt, amelyik automatikus kiegészítést végez az LC_ kezdetű környezeti változókra, ily módon megtudhatjuk, hogy közülük melyek vannak beállítva.
Az UHU-Linux 2.0 magyar nyelvű telepítése után a LANG változó értéke alapértelmezettként „hu_HU.UTF-8” (angol nyelvű telepítés esetén „en_US.UTF-8”). LC_ kezdetű környezeti változó pedig egy sincsen definiálva alapból.
A „hu_HU.UTF-8” érték jelentése: magyar nyelv (hu), Magyarországi területi beállítás (HU) és UTF-8 karakterkészlet. Hasonlóan „en_US.UTF-8” jelentése: angol nyelv (en), USA terület, UTF-8 karakterkészlet. Az egyéb lehetséges értékek a „locale -a” parancs kimenetében tekinthetők meg (a „.utf8” végződés helyett „.UTF-8” használandó), például „en_GB.UTF-8” esetén brit angol, „cs_CZ.UTF-8” esetén cseh lesz a beállítás, és így tovább.
A rendszer alapértelmezett nyelve a „/etc/sysconfig/locale” fájlban van definiálva. Az itteni érték határozza meg a rendszer indítása és leállítása során használt nyelvet, a rendszerszintű programok nyelveit, valamint a LANG változó is ezt kapja értéknek, ily módon közvetetten ez határozza meg az alkalmazások nyelvét is.
A nyelv akár csak egy-egy alkalmazás erejéig, akár tartósabban is megváltoztatható a LANG változó átdefiniálásával. Mindenképpen ügyeljünk a „.UTF-8” karakterkészlet-jelölés megtartására. Az alkalmazások egy része működik másmilyen karakterkészlettel is (erre nemsoká visszatérünk), ám mégis, az egész rendszert tekintve túlzottan sok ékezetkezelési hiba jönne elő ilyen beállítás esetén. Néhány példa:
Az angol nyelvre átállás megkönnyítése (gépelés megspórolása) érdekében készítettünk egy egyszerű programot, amelyik „en” névre hallgat. A program a LANG változót definiálja át en_US nyelvre és területre, megtartva a korábbi karakterkészletet. Tehát a következő parancsok egyaránt az mplayer angol nyelvű kézikönyvét jelenítik meg:
(Megjegyzés: a nyelvet általában az LC_ALL, LC_MESSAGES és LANG környezeti változók közül ilyen sorrendben az első létező határozza meg.)
Elképzelhetők bizonyos alkalmazások, melyek UTF-8 módban nem jól működnek, vagy ideiglenesen nem UTF-8, hanem hagyományos 8 bites karakterkészlettel szeretnénk elindítani.
Amennyiben a program nem terminálban fut, elegendő a LANG változót megfelelően átírni (a karakterkészlet-módosító „.UTF-8”-at leszedni a végéről, esetleg a régimódi karakterkészletet hangsúlyozni.) A gépelés megkönnyítése érdekében készítettünk egy programot, amelyiknek „8” a neve. Ez a program a LANG környezeti változót módosítja, UTF-8 helyett hagyományos 8 bites karakterkészletre állítja át. Az alábbi parancsok tehát egyenértékűek:
Ha terminálban fut a program, a LANG környezeti változón felül a terminál viselkedését is át kell állítanunk. Ha gnome-terminált használunk, ezt megtehetjük a Terminál menüpont alatt. Általánosabb megoldásként választhatjuk a luit programot, amelyik UTF-8 és a számára a környezeti változókban megnevezett karakterkészlet között végez átalakítást. Példának tekintsük az alábbi két, szintén egyenértékű parancsot:
A luit helyett akár a screen is használható, annak használati módjával a következő fejezetben ismerkedünk meg.
(Megjegyzés: a karakterkészletet általában az LC_ALL, LC_CTYPE és LANG környezeti változók közül ilyen sorrendben az első létező határozza meg. Beállításaink ellenőrzésére használjuk a „locale charmap” parancsot, ami a karakterkészlet nevét írja ki.)
Akad néhány program, amelyik a fájlneveket Latin-1 vagy Latin-2 kódolásúnak feltételezi. Az ilyen program a már létező UTF-8 kódolású fájlneveket csúnyán jeleníti meg, illetve ha új fájlt hozunk benne létre ékezetes névvel, akkor az nem érvényes UTF-8 kódolású lesz. Az utf8filename programmal a fájlneveket látszólag át tudjuk alakítani az alkalmazás számára, ily módon a program azokat többé-kevésbé helyesen fogja megjeleníteni.
Fontos azonban megjegyezni, hogy az utf8filename egy kísérleti program, nem feltétlenül működik helyesen minden környezetben. Bizonyos programokhoz jól jöhet, de ha valahol nem működik megfelelően, vagy valamilyen szempontból ront a program eredeti viselkedéséhez képest, akkor ne használjuk!
A LANG vagy UTF8FILENAME_LOCALE környezeti változóban nevezzük meg a kívánt 8 bites locale-t (például „hu_HU”), vagy az UTF8FILENAME_CHARSET környezeti változóban közvetlenül a karakterkészletet (például „latin2”).
Amikor az utf8filename-en keresztül indított program megnyit vagy létrehoz egy fájlt, az utf8filename ennek nevét automatikusan átalakítja a megnevezett (például latin2) kódolásról UTF-8-ra. Amikor az alkalmazás lekérdezi egy könyvtárban található fájlok listáját, akkor fordított irányú átalakítást végez a program: UTF-8-ról alakítja át Latin2-re a fájlneveket, hogy azok az alkalmazásban helyesen jelenjelek meg.
Amennyiben az átalakítás nem végezhető el (a fájl neve vagy nem érvényes UTF-8, vagy tartalmaz Latin2-n kívüli karaktereket is), az esetben az utf8filename alap értelmezésben eltakarja ezeket a fájlokat. Azonban ha definiáljuk az UTF8FILENAME_PREFIX környezeti változót is, akkor ezen fájlok neve elé fűzi ezt a sztringet, és a fájlnevet változatlanul hagyja. Ilyenkor tehát ezek a fájlok is elérhetők az alkalmazáson belül, még ha kissé olvashatatlan is a nevük. Fájl létrehozásakor (mentésekor stb.) ha a fájlnév ezzel az UTF8FILENAME_PREFIX értékkel kezdődik, akkor az előbb nevezett átalakítás fordítottja történik: a tényleges fájlnév elejéről ezt a prefixet eltávolítjuk, a további részt pedig ékezetkonvertálás nélkül változatlanul hagyjuk.
Néhány példa a használatra:
A program működésének szemléltetésére fogjunk egy régimódi, UTF-8-at nem ismerő képnézegető programot, az xv-t, valamint két képfájlt, az egyik „kalap_fût.png”, a másik pedig „magyar_fűt.png” névre hallgat (UTF-8 kódolás szerint, természetesen). Az „xv” azonban régi vágású, 8 bites (Latin-1 vagy Latin-2) karakterkészletet feltételező alkalmazás. Ezért a könyvtárlistában (jobb kattintás, majd Load) alap értelmezésben „kalap_fût.png” és „magyar_fűt.png” jelenik meg (a fájlneveket Latin-1 kódolással jeleníti meg).
Ha „LANG=hu_HU utf8filename xv” módon indítjuk, akkor csak a „magyar_fűt.png” fájl jelenik meg, de ez már helyesen, az utf8filename megfelelően „átverte” az xv-t, természetesen anélkül, hogy a fájlt ténylegesen átnevezte volna. A másikat, mivel nem volt átalakítható UTF-8-ról Latin-2-re, az utf8filename eltakarta. (Megjegyzés: a LANG=hu_HU hatására az xv ilyenkor már Latin-1 helyett Latin-2 betűkészletet használ.)
Ha pedig „LANG=hu_HU UTF8FILENAME_PREFIX=XXX- utf8filename xv” az indított parancs, akkor a könyvtárlistában a „magyar_fűt.png” mellett egy „XXX-kalap_fĂťt.png” is megjelenik: a „kalap_fût.png” fájl, ha nem is túl elegáns névvel, de szintén elérhetővé vált.
UTF-8 kódolású fájlok elemzéséhez, átalakításához (illetve hibás UTF-8 kódolás felderítéséhez) érdemes körülnéznünk a unidesc és uni2ascii csomagokban. Például egy UTF-8 kódolású szövegfájl betűinek egyenkénti felsorolására és értelmezésére használhatjuk a unidesc fájlnév parancsot.