LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: mrkissinger

奇怪的乱码问题

[复制链接]
 楼主| 发表于 2007-3-25 12:53:37 | 显示全部楼层
Post by achaoge
问题出在 LANGUAGE=en_US:en_GB:en 这个变量设置上面。
你ssh 连过去后再用 locale 命令查看一下是什么结果。

要解决问题,可以查看 /etc/default/locale 和 /etc/environment 就知道了
或在ssh 连接的时候传递LANG这个参数: ssh -o SENDENV=LANG your_host


amd64:~# cat /etc/default/locale
#  File generated by update-locale
LANG=zh_CN.UTF-8
amd64:~# cat /etc/environment
LANG="en_US"
LANGUAGE="en_US:en_GB:en"
amd64:~#

我手工全设置成UTF-8也不行──这2个参数好像是管提示语言的吧?
我从笔记本随便copy几句中文到ssh窗口,显示是正常的,就是文件名不对。
回复 支持 反对

使用道具 举报

发表于 2007-3-25 13:18:53 | 显示全部楼层
echo AcceptEnv LANG LC_* >> /etc/ssh/sshd_config
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-25 21:48:42 | 显示全部楼层
amd64:~# cat /etc/ssh/sshd_config | grep AcceptEnv
AcceptEnv LANG LC_*
amd64:~#
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-5 19:34:48 | 显示全部楼层
还是无法解决,送高帽子求助。
回复 支持 反对

使用道具 举报

发表于 2007-5-16 10:23:11 | 显示全部楼层
Post by mrkissinger
amd64:~# cat /etc/default/locale
#  File generated by update-locale
LANG=zh_CN.UTF-8
amd64:~# cat /etc/environment
LANG="en_US"
LANGUAGE="en_US:en_GB:en"
amd64:~#

我手工全设置成UTF-8也不行──这2个参数好像是管提示语言的吧?
我从笔记本随便copy几句中文到ssh窗口,显示是正常的,就是文件名不对。


把 /etc/environment 删除了试试
回复 支持 反对

使用道具 举报

发表于 2007-5-16 22:11:47 | 显示全部楼层
Post by mrkissinger
试过,真是不知道怎么办了。

和内核有关吗?我的配置是这样的。
原来默认是GB,后来我改成utf8了。

#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="UTF8"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
CONFIG_NLS_CODEPAGE_936=y
CONFIG_NLS_CODEPAGE_950=y
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=y

跟内核没关系!内核中与编码有关的地方应该只有文件系统。
amd64:~# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=zh_CN.UTF-8
LANGUAGE=en_US:en_GB:en
LC_CTYPE="zh_CN.UTF8"
LC_NUMERIC="zh_CN.UTF8"
LC_TIME="zh_CN.UTF8"
LC_COLLATE="zh_CN.UTF8"
LC_MONETARY="zh_CN.UTF8"
LC_MESSAGES="zh_CN.UTF8"
LC_PAPER="zh_CN.UTF8"
LC_NAME="zh_CN.UTF8"
LC_ADDRESS="zh_CN.UTF8"
LC_TELEPHONE="zh_CN.UTF8"
LC_MEASUREMENT="zh_CN.UTF8"
LC_IDENTIFICATION="zh_CN.UTF8"
LC_ALL=zh_CN.UTF8
前面几行错误应该是说你的系统不支持"zh_CN.UTF8"!你真的重新配置过了locales吗?改成"zh_CN.UTF-8"试试?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-17 13:13:02 | 显示全部楼层
莫名其妙的,这个现象消失了,可能是某个版本的包有问题吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表