LinuxSir.cn,穿越时空的Linuxsir!

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

fcitx不能输入及konsole、kwrite等显示中文为方块(已解决)

[复制链接]
发表于 2006-5-17 20:52:42 | 显示全部楼层 |阅读模式
[color="DarkOrange"]原标题为startx后fcitx无法呼出中文输入已经解决,剩下显示方块问题

系统很干净,装了0.72的BASE后
pacman -S kdebase kdepim 装了KDE
pacman -S xorg                 装了xorg7.0-1
pacman -S fcitx                  装了fcitx-3.1.1-1
pacman -S ttf-fireflysung    装完并在KDE下的字体设置中做了简单的中文设置

我的~/.xinitrc中加入了:

  1. export LANG=zh_CN.utf8

  2. export GTK_IM_MODULE=xim
  3. export XMODIFIERS=@im=fcitx
  4. export XIM=fcitx
  5. export XIM_PROGRAM=fcitx

  6. exec startkde
复制代码

此时fcitx无法在进入KDE时自动运行,进程中没有fcitx,输入fcitx命令后,面板出现但为灰色,ctrl+space也无法呼出中文输入,于是:
  1. ln -s /usr/bin/fcitx ~/.kde/Autostart/
复制代码

再次进入KDE,fcitx自动启动了,但是情况还是和上面相同,做如下操作:

  1. pkill fcitx
  2. export XMODIFIERS=@im=fcitx
  3. export XIM=fcitx
  4. export XIM_PROGRAM=fcitx
  5. fcitx
复制代码

问题照旧

另外还有一个问题,在kwrite或者kate中打开fcitx的配置文件中文为方框

locale如下图,在终端状态下也有那三句"can't see……",只是终端下是en_US.utf8,是否还是locale的问题?谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2006-5-17 21:41:28 | 显示全部楼层
locale配置不正确,
首先选择你需要的locale:vi /etc/locale.gen
然后运行:locale-gen
然后设置环境变量,然后运行locale看看会不会再出现"can't see……",没有出现表示正确;
另外utf-8下,fcitx是不是要把LC_CTYPE设置成zh_CN?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-17 23:36:35 | 显示全部楼层
谢谢!
按你说的,我把/etc/locale.gen里面需要的locale前的注释去掉了,然后locale-gen
"can't see……"消失了,fcitx也可以正常使用了;
LC_CTYPE=zh_CN.UTF8没有问题,应该是en_US.utf8的locale才需要改LC_CTYPE设置成zh_CN吧

但是还有个问题,kwrite,kate以及终端中显示的汉字都是方框,如果我在相应的字体配置窗口中选择了能预览到中文的字体的话,自己输入的中文能正常显示,而.fcitx/下的配置文件中的中文还是方块,将文件打开然后另存为utf8编码格式也一样
回复 支持 反对

使用道具 举报

发表于 2006-5-17 23:46:31 | 显示全部楼层
Post by 9122
谢谢!
按你说的,我把/etc/locale.gen里面需要的locale前的注释去掉了,然后locale-gen
"can't see……"消失了,fcitx也可以正常使用了;
LC_CTYPE=zh_CN.UTF8没有问题,应该是en_US.utf8的locale才需要改LC_CTYPE设置成zh_CN吧

但是还有个问题,kwrite,kate以及终端中显示的汉字都是方框,如果我在相应的字体配置窗口中选择了能预览到中文的字体的话,自己输入的中文能正常显示,而.fcitx/下的配置文件中的中文还是方块,将文件打开然后另存为utf8编码格式也一样

你安装了什么字体? 怎么装的?
.fcitx/下的config是用什么大开的?
你这些方框应该是字体配置的问题。不是编码的问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-18 00:42:23 | 显示全部楼层
Post by yqh1203
你安装了什么字体? 怎么装的?
.fcitx/下的config是用什么大开的?
你这些方框应该是字体配置的问题。不是编码的问题。


  1. pacman -S ttf-fireflysung
  2. cd /usr/share/fonts/TTF/
  3. mkfontscale
  4. mkfontdir
  5. fc-cache -f
复制代码

就是这样装的,没有装其他中文,装好后在那些字体配置的选单中为“AR PL New Sung”
打开方式如上所说,在Konsole,Kate,Kwrite三种当中打开config文件均为方框,自己输入的没有问题
回复 支持 反对

使用道具 举报

发表于 2006-5-18 00:58:28 | 显示全部楼层
貌似fonts.conf没有搞好。你不妨用精华区别人给的配置字体文件,用local.conf
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-18 05:48:37 | 显示全部楼层
Post by yqh1203
貌似fonts.conf没有搞好。你不妨用精华区别人给的配置字体文件,用local.conf

谢谢楼上的耐心解答!

对应精华区中的[color="Sienna"]Arch的简单中文设置
pacman -S ttf-arphic-uming ttf-arphic-ukai
输入法locale没有问题略过;
然后完全拷贝了那个第4条中的local.conf文件到/etc/fonts/


重新启动,调整控制中心的字体为默认值,粗体斜体都出来了,漂亮了不少,原来只有选“AR PL New Sung”时KDE才显示中文的,现在都可以了,不过总共也就9种字体;
再次用kwrite打开,调整了一下编码选为简体中文,可以显示了,但是konsole下调整了编码也还是不行

[color="DarkOrange"]找到问题了,还是locale的关系,调整export LANG=zh_CN.GBK等等其他zh_CN的locale,直接显示中文都正常,在konsole下也正常了,如果是export LANG=zh_CN.utf8的话就不行,不知道是不是个体现象,但是为何精华以及搜索到的帖子中均推荐用zh_CN.utf8呢?
回复 支持 反对

使用道具 举报

发表于 2006-5-18 06:00:38 | 显示全部楼层
其他地方的中文显示如何? 仅仅是konsole吗?
比如用别的terminal看的时候是什么样的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-18 07:08:16 | 显示全部楼层
其他是指的什么地方?kde各个窗口菜单以及网页显示都正常

我这样装出来好象就只有个konsole,终端只记得还有aterm和xterm,装上了后如果是export LANG=zh_CN.utf8的时候读取中文是乱码,改成export LANG=zh_CN.gb18030等aterm和xterm还是不能读取中文,而且xterm直接提示不支持locale
然后在任何locale下aterm的错误命令提示(中文)乱码,xterm可以部分正常显示,而在konsole均正常显示,这个应该是字体的问题了
回复 支持 反对

使用道具 举报

发表于 2006-5-18 07:09:08 | 显示全部楼层
Post by 9122

[color="DarkOrange"]找到问题了,还是locale的关系,调整export LANG=zh_CN.GBK等等其他zh_CN的locale,直接显示中文都正常,在konsole下也正常了,如果是export LANG=zh_CN.utf8的话就不行,不知道是不是个体现象,但是为何精华以及搜索到的帖子中均推荐用zh_CN.utf8呢?
那是因为~/.fcitx/config采用的gbk编码,而你的系统为utf8!在kwrite里直接改编码是有效的,而konsole里(我想你是用vi的把),必须先修改vi的配置文件,让它可以自动选择编码。具体的可以参考我的配置文件。(注:我这个也是论坛里搜来的,要感谢原作者。)


~/.vimrc:
  1. " multi-encoding setting
  2. if has("multi_byte")
  3.   "set bomb
  4.   set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1
  5.   " CJK environment detection and corresponding setting
  6.   if v:lang =~ "^zh_CN"
  7.     " Use cp936 to support GBK, euc-cn == gb2312
  8.     set encoding=cp936
  9.     set termencoding=cp936
  10.     set fileencoding=cp936
  11.   elseif v:lang =~ "^zh_TW"
  12.     " cp950, big5 or euc-tw
  13.     " Are they equal to each other?
  14.     set encoding=big5
  15.     set termencoding=big5
  16.     set fileencoding=big5
  17.   elseif v:lang =~ "^ko"
  18.     " Copied from someone's dotfile, untested
  19.     set encoding=euc-kr
  20.     set termencoding=euc-kr
  21.     set fileencoding=euc-kr
  22.   elseif v:lang =~ "^ja_JP"
  23.     " Copied from someone's dotfile, untested
  24.     set encoding=euc-jp
  25.     set termencoding=euc-jp
  26.     set fileencoding=euc-jp
  27.   endif
  28.   " Detect UTF-8 locale, and replace CJK setting if needed
  29.   if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
  30.     set encoding=utf-8
  31.     set termencoding=utf-8
  32.     set fileencoding=utf-8
  33.   endif
  34. else
  35.   echoerr "Sorry, this version of (g)vim was not compiled with multi_byte"
  36. endif
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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