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

我有一个包含西class牙文字的数据库。 它包含像sueño这样的文字,其中有“特殊字符”。 MySQL数据库sorting规则设置为支持外来字符的utf-8-general-ci,所以数据库应该没问题。

我有一个python脚本,我在bash shell中运行,并返回数据库中的所有单词,包括单词sueño。 问题是,bash shell不能正确显示“sueño”这个词。 n(在其上方有波浪号)在bash shell中显示时出现乱码。 所有其他没有特殊字符的英文单词都会正确显示。

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

公关感谢

你能显示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 envvariables,您将能够在terminal中显示这些字符。 你可以这样做一个简单的testing:

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

如果这样做,你可能想永久地改变你的语言环境为基于UTF-8的。