LinuxSir.cn,穿越时空的Linuxsir!

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

[己解决]Terminal, Gnome-Terminal下的字符宽度的问题

[复制链接]
发表于 2009-7-1 07:53:00 | 显示全部楼层 |阅读模式
在最新的Terminal 和 Gnome-Terminal,小写的 ü和ß占两个字符的位置。删掉该字符之后所在行不能对齐。不论在bash还是在vim中。
选任何字体都没用。
以前没这个问题。(曾多次在xfce的Terminal下写latex,其中几乎都包含了这些字符,未曾出过此问题)
不知是哪里出了问题。该如何解决?

(大写的Ü和大小写的 öäÖÄ都正常。
在xterm和Konsole下一切正常)





locale:


LANG=de_DE.utf8
LC_CTYPE=zh_CN.utf8
LC_NUMERIC="de_DE.utf8"
LC_TIME="de_DE.utf8"
LC_COLLATE="de_DE.utf8"
LC_MONETARY="de_DE.utf8"
LC_MESSAGES="de_DE.utf8"
LC_PAPER="de_DE.utf8"
LC_NAME="de_DE.utf8"
LC_ADDRESS="de_DE.utf8"
LC_TELEPHONE="de_DE.utf8"
LC_MEASUREMENT="de_DE.utf8"
LC_IDENTIFICATION="de_DE.utf8"
LC_ALL=


USE:

x11-libs/cairo-1.8.8  USE="X cleartype directfb glitz opengl svg xcb -debug -doc"
发表于 2009-7-1 12:01:50 | 显示全部楼层
德语?   字体没问题么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-1 16:09:28 | 显示全部楼层
以前一直都没问题的。  最新的xfce,gnome下的  Terminal不能正常显示。

换其他发行版也一样。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-1 22:34:54 | 显示全部楼层
也不是eselect fontfoncig 的原因。

我把环境变量用如下顺序设置:

LANG="de_DE.utf8"
LC_ALL="de_DE.utf8"
LC_CTYPE="zh_CN.utf8"
LC_ALL=""

就正常了。

但如果只是:
LANG="de_DE.utf8"
LC_CTYPE="zh_CN.utf8"
就会出现上述问题。。


请教是何原因
回复 支持 反对

使用道具 举报

发表于 2009-7-2 10:50:15 | 显示全部楼层
LANG="de_DE.utf8" ==> 所有 lc_*=de
LC_ALL="de_DE.utf8"==> 所有 lc_*=de
LC_CTYPE="zh_CN.utf8"==> 无效,lc_All是de_DE.utf8,所以LC_CTYPE强制为lc_*=dexxx
LC_ALL="" ==> 没有变化。

你这样设置的效果应该是全部都还是de_DE.UTF-8了……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-2 19:51:50 | 显示全部楼层
Post by 亞利艾爾;2002873
LANG="de_DE.utf8" ==> 所有 lc_*=de
LC_ALL="de_DE.utf8"==> 所有 lc_*=de
LC_CTYPE="zh_CN.utf8"==> 无效,lc_All是de_DE.utf8,所以LC_CTYPE强制为lc_*=dexxx
LC_ALL="" ==> 没有变化。

你这样设置的效果应该是全部都还是de_DE.UTF-8了……



不是像楼上说的那样,楼上可以试一下 ,上述程后結果是这样:

LANG=de_DE.utf8
LC_CTYPE=zh_CN.utf8
LC_NUMERIC="de_DE.utf8"
LC_TIME="de_DE.utf8"
LC_COLLATE="de_DE.utf8"
LC_MONETARY="de_DE.utf8"
LC_MESSAGES="de_DE.utf8"
LC_PAPER="de_DE.utf8"
LC_NAME="de_DE.utf8"
LC_ADDRESS="de_DE.utf8"
LC_TELEPHONE="de_DE.utf8"
LC_MEASUREMENT="de_DE.utf8"
LC_IDENTIFICATION="de_DE.utf8"
LC_ALL=

LC_CTYPE="zh_CN.utf8"==> 无效,lc_All是de_DE.utf8,所以LC_CTYPE强制为lc_*=dexxx

这句在 LC_ALL="" 了之后


  1. $ export LC_ALL="de_DE.utf8"

  2. $ locale

  3. LANG=de_DE.utf8
  4. LC_CTYPE="de_DE.utf8"
  5. LC_NUMERIC="de_DE.utf8"
  6. LC_TIME="de_DE.utf8"
  7. LC_COLLATE="de_DE.utf8"
  8. LC_MONETARY="de_DE.utf8"
  9. LC_MESSAGES="de_DE.utf8"
  10. LC_PAPER="de_DE.utf8"
  11. LC_NAME="de_DE.utf8"
  12. LC_ADDRESS="de_DE.utf8"
  13. LC_TELEPHONE="de_DE.utf8"
  14. LC_MEASUREMENT="de_DE.utf8"
  15. LC_IDENTIFICATION="de_DE.utf8"
  16. LC_ALL=de_DE.utf8

  17. $ export LC_ALL=""

  18. $ locale

  19. LANG=de_DE.utf8
  20. LC_CTYPE=zh_CN.utf8
  21. LC_NUMERIC="de_DE.utf8"
  22. LC_TIME="de_DE.utf8"
  23. LC_COLLATE="de_DE.utf8"
  24. LC_MONETARY="de_DE.utf8"
  25. LC_MESSAGES="de_DE.utf8"
  26. LC_PAPER="de_DE.utf8"
  27. LC_NAME="de_DE.utf8"
  28. LC_ADDRESS="de_DE.utf8"
  29. LC_TELEPHONE="de_DE.utf8"
  30. LC_MEASUREMENT="de_DE.utf8"
  31. LC_IDENTIFICATION="de_DE.utf8"
  32. LC_ALL=
复制代码



现在只有用这个顺序设置locale后才能解决既能输入中文(全是de_DE了之后不能输入中文),又能正确宽度显示 ü,ß,°,§等字符。   
但我以前 LANG="de_DE.utf8"再 LC_CTYPE="zh_CN.utf8"也能很好工作……而且最近我同学的Ubuntu9.04,和Fedora11上也出现了这个问题。
回复 支持 反对

使用道具 举报

发表于 2009-7-2 20:17:30 | 显示全部楼层
是我想当然了,不太清楚怎么回事。上个Bug也不错,其它发行版也有的话,看来波及面很大呀。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-3 22:48:48 | 显示全部楼层
还是有问题,在readline中。 宽度正常了,把光标往回移就出错……。  

控制台下的vim大至能正常使用了。

考完试后该自己改改代码。
回复 支持 反对

使用道具 举报

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

本版积分规则

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