Filename and characters

Hello :),

I moved from 13.2 to 42.1 and in GUI French to English. Now I have a filename problem, suite a language change badly done?
There are problems with the filenames (files and folders) holding characters with accents (á, é, ó, ñ, ü, …) or '— ’ or ‘®’.

In Kontrole as user or root “sudo ls” there are folders likeT**??l??chargements and Vid??**os

but as root using " as - " the answers are correct:Téléchargements and Vidéos

There is no problem using Dolphin, Kate or Python but yes with Firefox, LibreOffice or Gwenview.

Dawnloading a file which name in Dolphin (or in Kontrole as root) is:
“Colon Cancer Treatment (PDQ®)—Patient Version - National Cancer Institute.html”

Firefox filename is before dawnloading:
“Colon Cancer Treatment (PDQ®)—Patient Version - National Cancer Institute.html”

and in Kontrole as user
Colon Cancer Treatment (PDQ??)???Patient Version - National Cancer Institute.html

Just to re-do the language change (from French to English)? A command line?

Thank you.
PV

Hi,

I have the same symptoms on a Tumbleweed install, without any language change done. Initial installation was in December, the problem existed since the initial installation. Sorry I can not be of help right now, as I have another severe problem at hand, but will follow to see if a solution comes up.
Bye,

Joost

Yes, I did it in December and I can not Rsinc the data.
I hoped a ‘simple’ language change problem.

PV

i dont know the answer/fix but your problem is most likely character encoding (unicode). this is a pain in the ass affecting everything text in last few years. you most likely want utf-8 (the encoding that became dominant). The reason root is different since it will have a different user profile and hence locale. if nobody else can give you a precise fix, try googling. from very quick search you can see some issues here https://en.opensuse.org/SDB:Plain_Text_versus_Locale (please look for better pages). arch wiki would be a good place to also check. keep in mind the firefox problem may require a separate fix than desktop.

I set up Linux systems here in German to “German by default”:

  1. In ‘/etc/sysconfig/language’ the system language is set as follows: RC_LANG=“de_DE.UTF-8”.
  2. In ‘~/.profile’ the user’s who prefer to use the German language use the setting ‘export LANG=de_DE.UTF-8’.
  3. If a user prefers to use another language then, in ‘.profile’ “LANG” is set appropriately.

I have never had any issues with (German) language specific characters with diacritical marks.
[HR][/HR]Are you absolutely certain that you’ve allowed the installation procedure to install all the default language packs (packages)?
Can you please post the list of installed language packs on your system?

 > zypper search --installed-only lang

I controled the ‘/etc/sysconfig/language’ and ‘~/.profile’ and seems correct. With

 > zypper search --installed-only lang

part of the answer is

 [FONT=DejaVu Sans Mono][size=2]i | texlive-collection-langenglish     | US and UK English            | package[/size][/FONT]
 i | texlive-collection-langeuropean    | Other European languages     | package
 i | texlive-collection-langfrench      | French                       | package
 i | texlive-collection-langgerman      | German                       | package
 i | texlive-collection-langitalian     | Italian                      | package
 i | texlive-collection-langportuguese  | Portuguese                   | package
 i | texlive-collection-langspanish     | Spanish                      | package

I will try with the ndc33’s suggestions:

ndc33

i dont know the answer/fix but your problem is most likely character encoding (unicode). this is a pain in the ass affecting everything text in last few years. you most likely want utf-8 (the encoding that became dominant). The reason root is different since it will have a different user profile and hence locale. if nobody else can give you a precise fix, try googling. from very quick search you can see some issues here https://en.opensuse.org/SDBlain_Text_versus_Locale (please look for better pages). arch wiki would be a good place to also check. keep in mind the firefox problem may require a separate fix than desktop

Thank you
PV

FYI, the list of installed ‘lang’ packages on this “fresh, basic, no extras <yet>” Leap 42.2 German language laptop is (2 posts due to character limitations):


S | Name                              | Summary                                                  | Type   
--+-----------------------------------+----------------------------------------------------------+--------
i | NetworkManager-lang               | Languages for package NetworkManager                     | package
i | NetworkManager-openvpn-lang       | Languages for package NetworkManager-openvpn             | package
i | NetworkManager-pptp-lang          | Languages for package NetworkManager-pptp                | package
i | NetworkManager-vpnc-lang          | Languages for package NetworkManager-vpnc                | package
i | PackageKit-lang                   | Languages for package PackageKit                         | package
i | accountsservice-lang              | Languages for package accountsservice                    | package
i | amarok-lang                       | Languages for package amarok                             | package
i | avahi-lang                        | Languages for package avahi                              | package
i | baloo5-lang                       | Languages for package baloo5                             | package
i | bash-lang                         | Languages for package bash                               | package
i | bluedevil5-lang                   | Languages for package bluedevil5                         | package
i | breeze5-style-lang                | Languages for package breeze                             | package
i | coreutils-lang                    | Languages for package coreutils                          | package
i | cpio-lang                         | Languages for package cpio                               | package
i | cups-pk-helper-lang               | Languages for package cups-pk-helper                     | package
i | dirmngr-lang                      | Languages for package dirmngr                            | package
i | gconf2-lang                       | Languages for package gconf2                             | package
i | gcr-lang                          | Languages for package gcr                                | package
i | gdk-pixbuf-lang                   | Languages for package gdk-pixbuf                         | package
i | gegl-0_2-lang                     | Languages for package gegl                               | package
i | gimp-lang                         | Languages for package gimp                               | package
i | glib-networking-lang              | Languages for package glib-networking                    | package
i | glib2-lang                        | Languages for package glib2                              | package
i | gnome-keyring-lang                | Languages for package gnome-keyring                      | package
i | gnome-online-accounts-lang        | Languages for package gnome-online-accounts              | package
i | gpg2-lang                         | Languages for package gpg2                               | package
i | gsettings-desktop-schemas-lang    | Languages for package gsettings-desktop-schemas          | package
i | gstreamer-0_10-lang               | Languages for package gstreamer-0_10                     | package
i | gstreamer-0_10-plugins-base-lang  | Languages for package gstreamer-0_10-plugins-base        | package
i | gstreamer-lang                    | Languages for package gstreamer                          | package
i | gstreamer-plugins-bad-lang        | Languages for package gstreamer-plugins-bad              | package
i | gstreamer-plugins-base-lang       | Languages for package gstreamer-plugins-base             | package
i | gstreamer-plugins-good-lang       | Languages for package gstreamer-plugins-good             | package
i | gtk2-lang                         | Languages for package gtk2                               | package
i | gtk3-lang                         | Languages for package gtk3                               | package
i | gvfs-lang                         | Languages for package gvfs                               | package
i | icewm-lang                        | Languages for package icewm                              | package
i | iso-codes-lang                    | Languages for package iso-codes                          | package
i | json-glib-lang                    | Languages for package json-glib                          | package
i | k3b-lang                          | Languages for package k3b                                | package
i | kcm_sddm-lang                     | Languages for package kcm_sddm                           | package
i | kcoreaddons-lang                  | Languages for package kcoreaddons                        | package
i | kde-cli-tools5-lang               | Languages for package kde-cli-tools5                     | package
i | kde-gtk-config5-lang              | Languages for package kde-gtk-config5                    | package
i | kdeconnect-kde-lang               | Languages for package kdeconnect-kde                     | package
i | kded-lang                         | Languages for package kded                               | package
i | kdelibs4support-lang              | Languages for package kdelibs4support                    | package
i | kdoctools-lang                    | Languages for package kdoctools                          | package
i | kfilemetadata5-lang               | Languages for package kfilemetadata5                     | package
i | kgamma5-lang                      | Languages for package kgamma5                            | package
i | khotkeys5-lang                    | Languages for package khotkeys5                          | package
i | kinfocenter5-lang                 | Languages for package kinfocenter5                       | package
i | kinit-lang                        | Languages for package kinit                              | package
i | kio-lang                          | Languages for package kio                                | package
i | kmenuedit5-lang                   | Languages for package kmenuedit5                         | package
i | konversation-lang                 | Languages for package konversation                       | package
i | kpackage-lang                     | Languages for package kpackage                           | package
i | kpeople5-lang                     | Languages for package kpeople5                           | package
i | kross-lang                        | Languages for package kross                              | package
i | kscreen5-lang                     | Languages for package kscreen5                           | package
i | kscreenlocker-lang                | Languages for package kscreenlocker                      | package
i | kservice-lang                     | Languages for package kservice                           | package
i | ksshaskpass5-lang                 | Languages for package ksshaskpass5                       | package
i | ksysguard5-lang                   | Languages for package ksysguard5                         | package
i | ktexteditor-lang                  | Languages for package ktexteditor                        | package
i | kwallet-tools-lang                | Safe desktop-wide storage for passwords                  | package
i | kwalletd5-lang                    | Languages for package kwallet                            | package
i | kwebkitpart-lang                  | Languages for package kwebkitpart                        | package
i | kwin5-lang                        | Languages for package kwin5                              | package

And the rest of the Leap 42.2 “lang” packages:


S | Name                              | Summary                                                  | Type   
--+-----------------------------------+----------------------------------------------------------+--------
i | libKF5Auth5-lang                  | Languages for package kauth                              | package
i | libKF5Bookmarks5-lang             | Languages for package kbookmarks                         | package
i | libKF5Codecs5-lang                | Languages for package kcodecs                            | package
i | libKF5Completion5-lang            | Languages for package kcompletion                        | package
i | libKF5ConfigCore5-lang            | Languages for package kconfig                            | package
i | libKF5ConfigWidgets5-lang         | Languages for package kconfigwidgets                     | package
i | libKF5DBusAddons5-lang            | Languages for package kdbusaddons                        | package
i | libKF5DNSSD5-lang                 | Languages for package kdnssd-framework                   | package
i | libKF5Declarative5-lang           | Languages for package kdeclarative                       | package
i | libKF5GlobalAccel5-lang           | Languages for package kglobalaccel                       | package
i | libKF5I18n5-lang                  | Languages for package ki18n                              | package
i | libKF5IconThemes5-lang            | Languages for package kiconthemes                        | package
i | libKF5ItemViews5-lang             | Languages for package kitemviews                         | package
i | libKF5JobWidgets5-lang            | Languages for package kjobwidgets                        | package
i | libKF5JsEmbed5-lang               | Languages for package kjsembed                           | package
i | libKF5KCMUtils5-lang              | Languages for package kcmutils                           | package
i | libKF5KHtml5-lang                 | Languages for package khtml                              | package
i | libKF5NewStuff5-lang              | Languages for package knewstuff                          | package
i | libKF5Notifications5-lang         | Languages for package knotifications                     | package
i | libKF5NotifyConfig5-lang          | Languages for package knotifyconfig                      | package
i | libKF5Parts5-lang                 | Languages for package kparts                             | package
i | libKF5Pty5-lang                   | Languages for package kpty                               | package
i | libKF5Solid5-lang                 | Languages for package solid                              | package
i | libKF5SonnetCore5-lang            | Languages for package sonnet                             | package
i | libKF5Su5-lang                    | Languages for package kdesu                              | package
i | libKF5TextWidgets5-lang           | Languages for package ktextwidgets                       | package
i | libKF5UnitConversion5-lang        | Languages for package kunitconversion                    | package
i | libKF5WidgetsAddons5-lang         | Languages for package kwidgetsaddons                     | package
i | libKF5WindowSystem5-lang          | Languages for package kwindowsystem                      | package
i | libKF5XmlGui5-lang                | Languages for package kxmlgui                            | package
i | libKF5XmlRpcClient5-lang          | Languages for package kxmlrpcclient5                     | package
i | libgdata-lang                     | Languages for package libgdata                           | package
i | libgnome-keyring-lang             | Languages for package libgnome-keyring                   | package
i | libgphoto2-6-lang                 | Languages for package libgphoto2                         | package
i | libgpod-lang                      | Languages for package libgpod                            | package
i | libkgapi-lang                     | Languages for package libkgapi                           | package
i | libksysguard5-lang                | Languages for package libksysguard5                      | package
i | liblangtag1                       | C++ library for identification of the language from tags | package
i | libpurple-lang                    | Languages for package pidgin                             | package
i | libpwquality-lang                 | Languages for package libpwquality                       | package
i | libsecret-lang                    | Languages for package libsecret                          | package
i | libslang2                         | Programming Library and Embeddable Extension Language    | package
i | libsoup-lang                      | Languages for package libsoup                            | package
i | libwebkit2gtk3-lang               | Languages for package webkit2gtk3                        | package
i | libwebkitgtk2-lang                | Languages for package webkitgtk                          | package
i | milou5-lang                       | Languages for package milou5                             | package
i | notification-daemon-lang          | Languages for package notification-daemon                | package
i | oxygen5-lang                      | Languages for package oxygen5                            | package
i | plasma-framework-lang             | Languages for package plasma-framework                   | package
i | plasma-nm5-lang                   | Languages for package plasma-nm5                         | package
i | plasma5-addons-lang               | Languages for package plasma5-addons                     | package
i | plasma5-desktop-lang              | Languages for package plasma5-desktop                    | package
i | plasma5-pa-lang                   | Languages for package plasma5-pa                         | package
i | plasma5-pk-updates-lang           | Languages for package plasma5-pk-updates                 | package
i | plasma5-workspace-lang            | Languages for package plasma5-workspace                  | package
i | polkit-kde-agent-5-lang           | Languages for package polkit-kde-agent-5                 | package
i | powerdevil5-lang                  | Languages for package powerdevil5                        | package
i | psmisc-lang                       | Languages for package psmisc                             | package
i | pulseaudio-lang                   | Languages for package pulseaudio                         | package
i | purpose-lang                      | Languages for package purpose                            | package
i | sed-lang                          | Languages for package sed                                | package
i | shared-mime-info-lang             | Languages for package shared-mime-info                   | package
i | sharutils-lang                    | GNU shar utilities user interface texts                  | package
i | system-config-printer-common-lang | Languages for package system-config-printer              | package
i | systemsettings5-lang              | Languages for package systemsettings5                    | package
i | tar-lang                          | Languages for package tar                                | package
i | udisks2-lang                      | Languages for package udisks2                            | package
i | upower-lang                       | Languages for package upower                             | package
i | util-linux-lang                   | Languages for package util-linux                         | package
i | vorbis-tools-lang                 | Languages for package vorbis-tools                       | package
i | xdg-user-dirs-lang                | Languages for package xdg-user-dirs                      | package
i | xkeyboard-config-lang             | Languages for package xkeyboard-config                   | package
i | xz-lang                           | Languages for package xz                                 | package

Are you absolutely certain that, all the required packages required to support the languages supported by Linux, have been installed correctly?
Are you absolutely certain that, you’re using the standard list of Leap 42.2 repositories?


 > zypper repos 
Repository priorities are without effect. All enabled repositories share the same priority.                                                                                                     
                                                                                                                                                                                                
#  | Alias                           | Name                                                    | Enabled | GPG Check | Refresh                                                                  
---+---------------------------------+---------------------------------------------------------+---------+-----------+--------                                                                  
 1 | download.opensuse.org-non-oss   | Haupt-Repository (NON-OSS)                              | Yes     | (r ) Yes  | Yes                                                                      
 2 | download.opensuse.org-non-oss_1 | Aktualisierungs-Repository (Nicht-Open-Source-Software) | Yes     | (r ) Yes  | Yes                                                                      
 3 | download.opensuse.org-oss       | Haupt-Repository (OSS)                                  | Yes     | (r ) Yes  | Yes                                                                      
 4 | download.opensuse.org-oss_1     | Hauptaktualisierungs-Repository                         | Yes     | (r ) Yes  | Yes    
 5 | openSUSE-42.2-0                 | openSUSE-42.2-0                                         | No      | ----      | ----   
 6 | repo-debug                      | openSUSE-Leap-42.2-Debug                                | Yes     | (r ) Yes  | Yes    
 7 | repo-debug-non-oss              | openSUSE-Leap-42.2-Debug-Non-Oss                        | Yes     | (r ) Yes  | Yes    
 8 | repo-debug-update               | openSUSE-Leap-42.2-Update-Debug                         | Yes     | (r ) Yes  | Yes    
 9 | repo-debug-update-non-oss       | openSUSE-Leap-42.2-Update-Debug-Non-Oss                 | Yes     | (r ) Yes  | Yes    
10 | repo-source                     | openSUSE-Leap-42.2-Source                               | No      | ----      | ----   
11 | repo-source-non-oss             | openSUSE-Leap-42.2-Source-Non-Oss                       | No      | ----      | ----   
 > 

(The DVD repository is disabled by default following a “fresh” Leap 42.2 installation.) :wink:

Please show output of

env | grep -E 'LANG|LC_'

in both cases

I arrived only to Leap 42.1. and what I get is

> zypper repos
#  | Alias                               | Name                                    | Enabled | GPG Check | Refresh
---+-------------------------------------+-----------------------------------------+---------+-----------+--------
 1 | http-download.opensuse.org-30912f13 | X11:Utilities                           | Yes     | (r ) Yes  | Yes    
 2 | http-download.opensuse.org-3971f210 | Mono:Factory                            | Yes     | (r ) Yes  | Yes    
 3 | http-download.opensuse.org-9e5049fc | home:Simmphonie:mono                    | Yes     | (r ) Yes  | Yes    
 4 | http-download.opensuse.org-e3f82836 | Mono:Community                          | Yes     | (r ) Yes  | Yes    
 5 | openSUSE-42.1-0                     | openSUSE-42.1-0                         | Yes     | (r ) Yes  | No     
 6 | packman                             | packman                                 | Yes     | (r ) Yes  | Yes    
 7 | repo-debug                          | openSUSE-Leap-42.1-Debug                | No      | ----      | Yes    
 8 | repo-debug-non-oss                  | openSUSE-Leap-42.1-Debug-Non-Oss        | No      | ----      | Yes    
 9 | repo-debug-update                   | openSUSE-Leap-42.1-Update-Debug         | No      | ----      | Yes    
10 | repo-debug-update-non-oss           | openSUSE-Leap-42.1-Update-Debug-Non-Oss | No      | ----      | Yes    
11 | repo-non-oss                        | openSUSE-Leap-42.1-Non-Oss              | No      | ----      | Yes    
12 | repo-oss                            | openSUSE-Leap-42.1-Oss                  | Yes     | (r ) Yes  | Yes    
13 | repo-source                         | openSUSE-Leap-42.1-Source               | No      | ----      | Yes    
14 | repo-update                         | openSUSE-Leap-42.1-Update               | Yes     | (r ) Yes  | Yes    
15 | repo-update-non-oss                 | openSUSE-Leap-42.1-Update-Non-Oss       | Yes     | (r ) Yes  | Yes    

The answer is

> env  |  grep -E 'LANG|LC_'
LC_NUMERIC=it_CH.UTF-8
LANG=fr_CH.UTF-8
LANGUAGE=fr:en_US
LC_TIME=moh_CA.UTF-8

I don’t know what or how to correct. Are the LANG and LANGUAGE erroneous?

If in the Konsole I use ‘ls’ it shows filenames like ‘Vid??os’, ‘T??l??chargement’ or ‘d??uck.jpeg’ (I often write in French).
But using ‘ls >> info.txt’ what is written in ‘info.txt’ are filenames correct: ‘Viéos’, ‘Téléchargement’ or ‘dúuck.jpg’.
Is a problem puting pecial characters on screen?

in konsole edit-current-profile::advanced you will see the encoding, it is generally “default” with utf8. if it is not your probably better changing the settings in system/profile since this may also solve the problems you have elsewhere.
for the env | grep -E ‘LANG|LC_’ perhaps repeat in root env with su -

In the Konsole Edit Profile > Advanced the Encoding is UTF-8. Any way, your proposition was good, thank you. The problem seems restricted to what the Konsole shows in the screen.

Yesterday I used a EncFS / rsync command on a local disk to export to an extern disk with any problem. The extern one received data in a standard form that was reded on an other computer. https://forums.opensuse.org/images/icons/icon7.png

Mooving from Leap 42.1 to 42.2 would help to solve the problem? I need to look more to the Konsole.

The environment variable ‘LANGUAGE’ (normally set by the Linux GUI) seems to be OK but, normally it should only be set to a list of 2 character language codes – in your case “fr:en” would be sufficient.

The value of the environment variable ‘LC_TIME’ seems to be a little bit strange – is there a real reason to use “SUBLANG_MOHAWK_CANADA”? ("/usr/share/gettext/intl/localename.c")

Has someone been using “localedef” in your user’s home directory?

If you create a “fresh, plain, system default” test user and then login to that (new, fresh, system default) test user, do the issues you’re describing here still happen?

The ‘LC_TIME=moh_CA.UTF-8’ probably cames from a choise I did on ‘Formats- KDE Control Modules’:
Time 2017-02-17 15:05 (short format). The ‘LC_NUMERIC=it_CH.UTF-8’ gives Numbers: 1’000.01. In the same ‘KDE Control Module’ is indicated: Region: Suisse - fraçais suisse (fr_CH).

I will generate the new user, but what I would do if there the problem on Konsole is not present?

Effectively in the new user there is no problem to recognize and treat filesname holding characters like ‘é’ or ‘á’ as example (Konsole, Gwenview).

I do not really know what is going wrong here, but I want to point to the fact that in general it is not the Language that is wrong, but the character encoding.

The language is normally used by applications to show messages in a specific language (if available). The character encoding defines how characters (including when they build file names) are stored. On to days Linux systems that should be UTF-8.

What is shown in the first post is typically a wrong interpretation of the encoding. E.g. something is stored in UTF-8, but interpreted as if it were Latin-1.

Which is usually governed by LC_CTYPE locale category, why I asked to show current locale settings. Of course in this case we have two steps - program outputs character codes and terminal emulator (konsole) converts them into font position to print on screen. It really looks like the latter misbehaves; I wonder if environment at the start of konsole is different from what was shown (is quite possible if locale is redefined in one of shell startup files that is not interpreted by konsole itself). It would be interesting to see environment of konsole itself. Find PID of konsole and do

tr '\0' 
' < /proc/*konsole_PID*/environ | grep -E 'LANG|LC_'

To find PID of konsole

> ps -p $$ -o ppid=
 5695
>

But using the PID:

> tr '\0' 
' < /proc/5695/environ | grep -E 'LANG|LC_'
LC_

tr 0 
: command not found

^C        
>
  The  ^C  is to unblock the konsole.