"Brian C. Lane" <b...@redhat.com> skribis: > See my patch here: > > http://lists.alioth.debian.org/pipermail/parted-devel/2014-July/004568.html
-export LC_ALL=C.UTF-8 +if [ -e "/usr/share/locale/en_US/" ]; then + export LC_ALL=en_US.UTF-8 +else + export LC_ALL=C.UTF-8 +fi The problem is that this directory is not necessarily where locale data resides. One way to check whether the locale encoding is supported would be with ‘wc -m’: --8<---------------cut here---------------start------------->8--- $ printf 'foo\341\264\244'|LC_ALL=C wc -m 6 $ printf 'foo\341\264\244'|LC_ALL=en_US.utf8 wc -m 4 --8<---------------cut here---------------end--------------->8--- The test could look for a valid UTF-8 locale like this: --8<---------------cut here---------------start------------->8--- found_locale=no for locale in en_US de_DE fr_FR es_ES do LC_ALL="$locale.utf8" # In a UTF-8 locale, the string below prints as 4 characters. if [ `printf 'foo\341\264\244' | wc -m` -eq 4 ]; then found_locale=yes break fi done if [ "$found_locale" != "yes" ]; then echo "no valid UTF-8 locale found; skipping" >&2 exit 77 fi --8<---------------cut here---------------end--------------->8--- Thoughts? Thanks, Ludo’.