Chinaunix

标题: 在UTF-8的locale下,如何查看GBK文件名?[遗留问题……] [打印本页]

作者: 天穹北    时间: 2007-03-16 19:53
标题: 在UTF-8的locale下,如何查看GBK文件名?[遗留问题……]
如题,
我记得是运行:
export LANG="zh_CN.GBK"
然后就可以了。
但是今天怎么做也不对。

[ 本帖最后由 天穹北 于 2007-3-18 18:49 编辑 ]
作者: shaken    时间: 2007-03-16 20:18
执行一下locale,然后把结果贴出来,实在不行用zhcon
作者: 天穹北    时间: 2007-03-16 20:30
是在虚拟终端下,用的是urxvt。
locale如下:

  1. TQbeiBOX:~# locale
  2. LANG=zh_CN.UTF-8
  3. LC_CTYPE="zh_CN.UTF-8"
  4. LC_NUMERIC="zh_CN.UTF-8"
  5. LC_TIME="zh_CN.UTF-8"
  6. LC_COLLATE="zh_CN.UTF-8"
  7. LC_MONETARY="zh_CN.UTF-8"
  8. LC_MESSAGES="zh_CN.UTF-8"
  9. LC_PAPER="zh_CN.UTF-8"
  10. LC_NAME="zh_CN.UTF-8"
  11. LC_ADDRESS="zh_CN.UTF-8"
  12. LC_TELEPHONE="zh_CN.UTF-8"
  13. LC_MEASUREMENT="zh_CN.UTF-8"
  14. LC_IDENTIFICATION="zh_CN.UTF-8"
  15. LC_ALL=
复制代码

作者: fu_ch_un    时间: 2007-03-16 22:25
我看一下啊,兄弟.
对了,你运行一下
locale -a | grep -i "gbk"
如果有zh_CN.gbk
那么直接就
LANG=zh_CN.gbk
对了,欢迎到我的Linux qq群里面来吧:28597414

[ 本帖最后由 fu_ch_un 于 2007-3-16 22:28 编辑 ]
作者: 天穹北    时间: 2007-03-16 22:36
谢谢,
有是有,运行了之后,ls还是无法查看gbk的文件名。
现在,我用的机子是签名档中差的那部机;好烂,没法用Q。
作者: fu_ch_un    时间: 2007-03-16 22:41
请吧你的locale -a | grep -i "gbk"结果帖出来.
作者: 天穹北    时间: 2007-03-16 22:47
只是:

  1. TQbeiBOX:~# locale -a | grep -i "gbk"
  2. zh_CN.gbk
  3. TQbeiBOX:~#
复制代码

作者: fu_ch_un    时间: 2007-03-16 22:48
那直接运行
LANG=zh_CN.gbk就可以了.
作者: 天穹北    时间: 2007-03-16 22:52
结果如下:

  1. TQbeiBOX:~# ls
  2. ????        opera_9.10-20061214.6-shared-qt_en_i386.deb
  3. fvwm        ouw910_zh-cn.lng
  4. head.gif    usb
  5. head.jpeg   wqy-bitmapfont-0.8.0-6_all.deb
  6. opera6.adr  言论
  7. TQbeiBOX:~# LANG=zh_CN.gbk
  8. TQbeiBOX:~# locale
  9. LANG=zh_CN.gbk
  10. LC_CTYPE="zh_CN.gbk"
  11. LC_NUMERIC="zh_CN.gbk"
  12. LC_TIME="zh_CN.gbk"
  13. LC_COLLATE="zh_CN.gbk"
  14. LC_MONETARY="zh_CN.gbk"
  15. LC_MESSAGES="zh_CN.gbk"
  16. LC_PAPER="zh_CN.gbk"
  17. LC_NAME="zh_CN.gbk"
  18. LC_ADDRESS="zh_CN.gbk"
  19. LC_TELEPHONE="zh_CN.gbk"
  20. LC_MEASUREMENT="zh_CN.gbk"
  21. LC_IDENTIFICATION="zh_CN.gbk"
  22. LC_ALL=
  23. TQbeiBOX:~# ls
  24. fvwm        opera_9.10-20061214.6-shared-qt_en_i386.deb  ¸èÇú
  25. head.gif    ouw910_zh-cn.lng                             è¨?è®?
  26. head.jpeg   usb
  27. opera6.adr  wqy-bitmapfont-0.8.0-6_all.deb
  28. TQbeiBOX:~#
复制代码

作者: fu_ch_un    时间: 2007-03-16 23:02
以前用这个Lang=的方法可以显示吗?你用的是gnome吗?

[ 本帖最后由 fu_ch_un 于 2007-3-16 23:04 编辑 ]
作者: 天穹北    时间: 2007-03-16 23:20
以前曾使用过此命令,然后使用lftp。当时用的也是fvwm+urxvt。
而今天,此命令好像对lftp无效。
作者: woodie    时间: 2007-03-16 23:58
虚拟终端吗?所在的X桌面的Locale,是什么?要改成zh_CN.gb2312或zh_CN.gbk才行,只改终端窗口是不够的。
作者: woodie    时间: 2007-03-17 00:04
做samba的机器,本机的locale最好用GBK的,用utf8的话在本机看中文文件名比较费劲。远程管理要是用putty的话,不论UTF8还是GB码都是很容易搞定的,所以用什么都行。个人的一点小经验。hoho.
作者: 天穹北    时间: 2007-03-17 00:40
但我曾经临时更改编码,然后lftp登录ftp,和用smb登录windows机,GBK编码的文件名可以正常显示。
export LANG='XXX'不就是用来临时更改编码的么?
我那部好的机子有用smb且是UTF-8,不过一切正常;smb有内置的编码转换功能。
我在想我是不是少装了什么软件。
作者: XXXIII    时间: 2007-03-17 00:44
export LC_ALL=zh_CN.gb18030 试试
作者: 天穹北    时间: 2007-03-17 00:58
谢谢呵
结果差不多:

  1. TQbeiBOX:~# export LC_ALL=zh_CN.gb18030
  2. TQbeiBOX:~# locale
  3. locale: Cannot set LC_CTYPE to default locale: No such file or directory
  4. locale: Cannot set LC_MESSAGES to default locale: No such file or directory
  5. locale: Cannot set LC_ALL to default locale: No such file or directory
  6. LANG=zh_CN.gbk
  7. LC_CTYPE="zh_CN.gb18030"
  8. LC_NUMERIC="zh_CN.gb18030"
  9. LC_TIME="zh_CN.gb18030"
  10. LC_COLLATE="zh_CN.gb18030"
  11. LC_MONETARY="zh_CN.gb18030"
  12. LC_MESSAGES="zh_CN.gb18030"
  13. LC_PAPER="zh_CN.gb18030"
  14. LC_NAME="zh_CN.gb18030"
  15. LC_ADDRESS="zh_CN.gb18030"
  16. LC_TELEPHONE="zh_CN.gb18030"
  17. LC_MEASUREMENT="zh_CN.gb18030"
  18. LC_IDENTIFICATION="zh_CN.gb18030"
  19. LC_ALL=zh_CN.gb18030
  20. TQbeiBOX:~# ls
  21. 28291.jpg                                    ouw910_zh-cn.lng
  22. fvwm                                         usb
  23. head.gif                                     wqy-bitmapfont-0.8.0-6_all.deb
  24. head.jpeg                                    ????
  25. opera6.adr                                   ??????
  26. opera_9.10-20061214.6-shared-qt_en_i386.deb
  27. TQbeiBOX:~#
复制代码

作者: kenduest    时间: 2007-03-17 01:02
比方你在 kde or gnome 下可以開執行命令,那就請輸入執行:

  1. bash -c LANG=zh_CN.GBK urxvt
复制代码


這樣就可以使用了。

--
作者: 天穹北    时间: 2007-03-17 01:12
原帖由 kenduest 于 2007-3-17 01:02 发表于 17楼  
比方你在 kde or gnome 下可以開執行命令,那就請輸入執行:

bash -c LANG=zh_CN.GBK urxvt

這樣就可以使用了。

--

谢谢。
那个,PIII667/128M/60G上实在不能用G或K。
我是很郁闷,同样的事情,同样的方法;结果却不一样。:em12:
作者: kenduest    时间: 2007-03-17 01:19
原帖由 kenduest 于 2007-3-17 01:02 发表于 17楼  
比方你在 kde or gnome 下可以開執行命令,那就請輸入執行:
bash -c LANG=zh_CN.GBK urxvt
這樣就可以使用了。


我打錯了..

bash -c "LANG=zh_CN.GBK urxvt"

那個,PIII667/128M/60G上實在不能用G或K。
我是很鬱悶,同樣的事情,同樣的方法;結果卻不一樣。


看不大懂意思.

--
作者: 天穹北    时间: 2007-03-17 01:33
太感谢了,成了。

原帖由 kenduest 于 2007-3-17 01:19 发表于 19楼  

看不大懂意思.

--

我是指以前用export LANG='XX'可以达到我的目的,而现在不行了。故而郁闷。

另外,那个命令是新开一个终端,可不可以在本终端中直接切换?
无论如何,太感谢了。
作者: kenduest    时间: 2007-03-17 01:37
原帖由 天穹北 于 2007-3-17 01:33 发表于 20楼  
我是指以前用export LANG='XX'可以达到我的目的,而现在不行了。故而郁闷。


因為你目前是 utf8 字集環境,所以終端機內執行的輸出字集都會以 utf-8 處理顯示。

而執行 LANG=zh_CN.GBK 後你執行 ls 檢視檔案時會使用 GBK 字集符號輸出,但是這個輸出字集對於 UTF-8 環境來說卻是另外一種層級意思,所以顯示會失敗。

另外,那个命令是新开一个终端,可不可以在本终端中直接切换?


更換你的終端機程式,像是 gnome-terminal 可以直接調整顯示字集而不需要另外開一個。

--
作者: 天穹北    时间: 2007-03-17 01:49
也就是说,urxvt不会根据locale的改变而自动调整显示字符集,但是可以在启动时指定。是不是?
另外,关于在终端下设置代理;export http_proxy是不是不支持需密码验证的代理?
作者: kenduest    时间: 2007-03-17 01:51
原帖由 天穹北 于 2007-3-17 01:49 发表于 22楼  
也就是说,urxvt不会根据locale的改变而自动调整显示字符集,但是可以在启动时指定。是不是?


terminal 程式執行時會依據 locale 配置啟動運作,你後續跑 LANG=xxx 改變量你的終端機程式並不會知道。

另外,关于在终端下设置代理;export http_proxy是不是不支持需密码验证的代理?

  1. export http_proxy="http://username:password@proxy.xxx.com.cn"
复制代码


--
作者: 天穹北    时间: 2007-03-17 02:06
原帖由 kenduest 于 2007-3-17 01:51 发表于 23楼  

terminal 程式執行時會依據 locale 配置啟動運作,你後續跑 LANG=xxx 改變量你的終端機程式並不會知道。

--

那这样的话,export LANG=XXX 之类的命令有何意义。


另外执行:

  1. export http_proxy="http://username:password@proxy.xxx.com.cn"
复制代码

但是仍然无法使用代理。

  1. TQbeiBOX:~# export http_proxy="http://TQbei:123@192.168.32.153:808"
  2. TQbeiBOX:~# echo $http_proxy
  3. http://TQbei:123@192.168.32.153:808
  4. TQbeiBOX:~# telnet bbs.tsinghua.edu.cn
  5. Trying 166.111.8.238...

  6. TQbeiBOX:~# ping www.chinaunix.net
  7. PING www.chinaunix.net.fastcdn.com (60.28.166.84) 56(84) bytes of data.

  8. --- www.chinaunix.net.fastcdn.com ping statistics ---
  9. 35 packets transmitted, 0 received, 100% packet loss, time 34016ms

  10. TQbeiBOX:~#

复制代码

作者: kenduest    时间: 2007-03-17 02:59
原帖由 天穹北 于 2007-3-17 02:06 发表于 24楼  

那这样的话,export LANG=XXX 之类的命令有何意义。


請注意你是在 UTF-8 環境,目前顯示字集內容符號都會對照 unicode 的字符表,程序本來就應該使用 unicode 環境的字元符號來輸出才可以正確顯示不是呼 ?

當然,你可以改 locale,比方你要繁體中文你可以用 zh_TW.UTF-8, 你要日文可以用 ja_JP.UTF-8,但是你不可以指定非 unicode 的字集項目。

你在 gnome-terminal 內你當然可以自己設定 LANG=xxxx  調整成你要的,但是你需要一併調整 gnome-terminal 內處理字集顯示要相同,要不然對不起來顯示就會亂碼。

若你還有疑問,我建議你可以考慮先認識瞭解一下何謂 UNICODE,這樣才比較好談下去。

另外执行:
export http_proxy="http://username:password@proxy.xxx.com.cn"
但是仍然無法使用代理

TQbeiBOX:~# export http_proxy="http://TQbei:123@192.168.32.153:808"
TQbeiBOX:~# echo $http_proxy
http://TQbei:123@192.168.32.153:808
TQbeiBOX:~# telnet bbs.tsinghua.edu.cn
Trying 166.111.8.238...


那個變量一般式給瀏覽器相關程式使用的,或者是支援 http 代理的程式使用 (比方 lynx or w3m or wget 等等) ,而你卻使用 telnet 程式來測試,這樣效果呢 ?

純 telnet 程式不支援 http proxy 這種功能,所以你無法使用。

--

[ 本帖最后由 kenduest 于 2007-3-17 03:09 编辑 ]
作者: 天穹北    时间: 2007-03-17 03:09
多谢点拨,我明白了。
谢谢了。
今晚可以睡得安稳了。
作者: 天穹北    时间: 2007-03-17 03:23
另外,LinuxSir上有人给出使用luit的方法。命令如下:

  1. luit -encoding gbk telnet ip
复制代码

在Debian下该命令属于xutils软件包。
在此一并贴上把。再次谢谢kenduest
作者: 天穹北    时间: 2007-03-18 18:47
现在发现了一个问题,
  1. bash -c "LANG=zh_CN.GBK urxvt"
复制代码

命令新开的urxvt窗口,不能用fcitx输入中文;但是可以黏贴中文。
是要设置一下fcitx么?
作者: 天穹北    时间: 2007-03-20 20:51
乞求解答!
需要对urxvt进行怎样的设置?
谢谢。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2