我有一个包含西班牙语单词的数据库。它包含像 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=
如果您更改LANG
和LANGUAGE
环境变量,您将能够在终端中显示这些字符。您可以进行如下简单测试:
LANG=en_CA.UTF-8; LANGUAGE=en_CA:en; echo ñ;
如果可行,您可能需要将您的语言环境永久更改为基于 UTF-8 的语言环境。