Linux 服务器 Bash Shell 中的西班牙语字符

Linux 服务器 Bash Shell 中的西班牙语字符

我有一个包含西班牙语单词的数据库。它包含像 sueño 这样的单词,其中有“特殊字符”。MySQL 数据库排序规则设置为支持外语字符的 utf-8-general-ci,因此数据库应该没问题。

我有一个在 bash shell 中运行的 Python 脚本,它返回数据库中的所有单词,包括单词 sueño。问题是 bash shell 无法正确显示单词“sueño”。在 bash shell 中显示时,n(上面带有波浪符号)是乱码。所有其他没有特殊字符的英语单词均能正确显示。

有没有什么方法可以在 bash shell 中启用外来字符(特殊字符)支持?

谢谢,PR

答案1

locale您能显示该命令的输出吗?

例子:

LANG=en_CA.UTF-8
LANGUAGE=en_CA:en
LC_CTYPE="en_CA.UTF-8"
LC_NUMERIC="en_CA.UTF-8"
LC_TIME="en_CA.UTF-8"
LC_COLLATE="en_CA.UTF-8"
LC_MONETARY="en_CA.UTF-8"
LC_MESSAGES="en_CA.UTF-8"
LC_PAPER="en_CA.UTF-8"
LC_NAME="en_CA.UTF-8"
LC_ADDRESS="en_CA.UTF-8"
LC_TELEPHONE="en_CA.UTF-8"
LC_MEASUREMENT="en_CA.UTF-8"
LC_IDENTIFICATION="en_CA.UTF-8"
LC_ALL=

如果您更改LANGLANGUAGE环境变量,您将能够在终端中显示这些字符。您可以进行如下简单测试:

LANG=en_CA.UTF-8; LANGUAGE=en_CA:en; echo ñ;

如果可行,您可能需要将您的语言环境永久更改为基于 UTF-8 的语言环境。

相关内容