元音变音问题(无法在终端输入+无法打开文件)

元音变音问题(无法在终端输入+无法打开文件)

在我的笔记本电脑上,我安装了 Linux Mint 18.3,现在遇到以下问题:
作为德国人,我碰巧有一些文件(或目录)的名称中包含变音符号(这本身不是问题)。如果我现在尝试打开那些包含变音符号或位于名称包含变音符号的(子)目录中的文件(例如 PDF),则它将无法打开。

例如,我有一个名为的目录Übungsblätter,在该目录中的某个位置我有一些 PDF 文件。如果我尝试从文件管理器打开其中一个文件,Okular 会告诉我它无法打开,.../Ãbungsblätter/...这表明它用一些奇怪的字符替换变音符号,从而弄乱了路径。

但是,如果我打开 Okular 并使用其菜单打开相应的文件,一切都会像魅力一样工作,因此只有在尝试从我的文件管理器(Dolphin)打开文件时才会出现问题。

此外,我发现我无法在终端中输入变音符号。我发现这个问题处理这个特定问题,我希望这也能解决文件问题。然而,情况并非如此,尽管我现在可以在终端中输入变音符号(尽管在输入变音符号时它会插入两个字符。例如,在输入时会插入两个字符ö(通过输入并点击\udcc3\udcb6找到)ö然后返回)。虽然它确实显示为单个字符ö,但我必须显式删除两个字符才能使命令行再次为空。

这是输出locale

locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=de_DE.UTF-8
LANGUAGE=en_US
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC=de_DE.UTF-8
LC_TIME=nds_DE.UTF-8
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY=de_DE.UTF-8
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_ALL=

编辑:
我刚刚发现,当从终端打开相应的 PDF 时,它也会以与从文件管理器打开时类似的方式出错,但这次它说无法打开.../bungsbltter/...(它完全删除了变音符号)

编辑2:
输出locale -a

C
C.UTF-8
de_DE.utf8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX

编辑 3:
/etc/default/locale:

LANGUAGE=en_GB.utf8
LANG=en_US.UTF-8

答案1

我发现区域设置有些混乱。

de_DE一点是: 、en_US和的混合en_GB

另一点是:某些语言环境是用 声明的.utf8,其他语言环境是用 声明的.UTF-8。虽然意思应该是一样的,但是可能会引起麻烦。

错误消息Cannot set LC_ALL to default locale: No such file or directory可能是因为缺少en_US.UTF-8locale -a而是en_US.utf8),但它是在 中声明的/etc/default/locale

LANG=de_DE.UTF-8我在输出中看到它有点困惑,locale尽管它没有定义/etc/default/locale并且没有/etc/locale.conf.也许桌面环境中的设置会覆盖系统设置?或者在~/.bashrc?还要检查您是否有~/.config/locale.conf.更多可以设置环境变量的位置列在拱门维基。找出LANG=de_DE.UTF-8设置的位置并将其删除。


我认为最好的方法是将所有内容设置为德国语言环境。您locale -a显示系统上已安装的区域设置。其中之一是de_DE.utf8

核心设置在/etc/default/locale.你可以手动编辑它,我认为它的内容应该是公正的LANG=de_DE.utf8,没有别的。您可以自己编辑该文件,或使用工具来编辑该文件:

update-locale --reset LANG=de_DE.utf8

要保持系统为英语,但也有元音变音,可以将区域设置设置为en_US.utf8中列出的区域设置locale -a。 utf8 应该提供变音符号,即使该语言不使用它们:

update-locale --reset LANG=en_US.utf8

祈祷,重新启动并检查是否一切正常。如果控制台工作正常,但桌面环境仍然有问题,请检查桌面设置 GUI 中的语言条目,并将其设置为de_DE.utf8

相关内容