LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1782|回复: 16

奇怪的乱码问题

[复制链接]
发表于 2007-3-21 05:03:58 | 显示全部楼层 |阅读模式
家里的机器是debian,locale信息:
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
amd64:~#

笔记本是ubuntu,locale信息:
mrkissinger@showgirl:~$ locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
mrkissinger@showgirl:~$

从笔记本ssh回家,汉字是问号。
两台机器各自的汉字显示都正常。通过lftp/sftp时显示也正常。

请问有人碰到类似的问题吗?
我用的term是rxvt-unicode。
发表于 2007-3-21 19:44:49 | 显示全部楼层
#>cd ~/
#>less .Xresources
也许你会看到答案,如还有问题,请google rxvt
回复 支持 反对

使用道具 举报

发表于 2007-3-21 20:56:17 | 显示全部楼层
你试试mlterm,看看是否能够正常显示?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-21 21:05:42 | 显示全部楼层
Post by cg111
#>cd ~/
#>less .Xresources
也许你会看到答案,如还有问题,请google rxvt


没有这个文件。而且我2台机器本地用都是正常的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-21 21:06:22 | 显示全部楼层
Post by springwind426
你试试mlterm,看看是否能够正常显示?


同样是问号。
回复 支持 反对

使用道具 举报

发表于 2007-3-21 22:57:18 | 显示全部楼层
#>cd /etc/X11/app-defaults
#>less  URxvt
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-23 18:15:36 | 显示全部楼层
Post by cg111
#>cd /etc/X11/app-defaults
#>less  URxvt


这个管的是本地的参数吧。
但是我连另外的2台机器都正常,也是utf8的,应该不是本地配置的问题吧。
回复 支持 反对

使用道具 举报

发表于 2007-3-24 20:56:48 | 显示全部楼层
家里电脑应该还有问题吧:
  1. locale: Cannot set LC_CTYPE to default locale: No such file or directory
  2. locale: Cannot set LC_MESSAGES to default locale: No such file or directory
  3. locale: Cannot set LC_ALL to default locale: No such file or directory
复制代码
重新配置一下locales看看?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-24 21:15:48 | 显示全部楼层
试过,真是不知道怎么办了。

和内核有关吗?我的配置是这样的。
原来默认是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
回复 支持 反对

使用道具 举报

发表于 2007-3-25 10:38:58 | 显示全部楼层
Post by mrkissinger
家里的机器是debian,locale信息:
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
amd64:~#

笔记本是ubuntu,locale信息:
mrkissinger@showgirl:~$ locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
mrkissinger@showgirl:~$

从笔记本ssh回家,汉字是问号。
两台机器各自的汉字显示都正常。通过lftp/sftp时显示也正常。

请问有人碰到类似的问题吗?
我用的term是rxvt-unicode。


问题出在 LANGUAGE=en_US:en_GB:en 这个变量设置上面。
你ssh 连过去后再用 locale 命令查看一下是什么结果。

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

使用道具 举报

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

本版积分规则

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