ArchLinux下乱码的问题

31 views
Skip to first unread message

rainy

unread,
Jan 18, 2008, 10:28:05 AM1/18/08
to scim-python
在ArchLinux下编译和安装都OK,但是基本无法输入,大多数字都显示乱码,只有极个别单字可以输入,词组完全无法输入,下面有附上截图和
config.log,帮忙看看问题出在哪。

编译环境:
ArchLinux Current
scim 1.4.7
python 2.5.1
python-pysqlite 2.3.5
sqlite3 3.5.4
locale zh_CN.UTF-8

截图
http://scim-python.googlegroups.com/web/scim-python_ArchLinux.png?gda=IBhsIkoAAAD9WPHtrtVUpW3FI61JgFedEQDZ8uQkcL65vBlOkbMdXmG1qiJ7UbTIup-M2XPURDT9BPekkDf3_3bo-oGFdexy-wypoL3y_UA9iJueyEb_Dw

config.log
http://scim-python.googlegroups.com/web/config.log?gda=laprxjsAAAD9WPHtrtVUpW3FI61JgFedEQDZ8uQkcL65vBlOkbMdXmG1qiJ7UbTIup-M2XPURDQ8an5_WdcYmUdIBnPUFXP2

Huang Peng

unread,
Jan 18, 2008, 7:43:55 PM1/18/08
to scim-...@googlegroups.com
你可以检查一下数据库里的内容么?就是文件/usr/share/scim-python/engine/PinYin/py.db。
$ sqlite py.db
sql> select * from py_phrase_all;
看看数据库里面存放的词语,是否是乱码。


2008/1/18 rainy <rain...@gmail.com>:

rainy

unread,
Jan 19, 2008, 6:40:35 AM1/19/08
to scim-python
数据库里的词语显示正常,没有乱码。

Huang Peng

unread,
Jan 19, 2008, 8:35:52 AM1/19/08
to scim-...@googlegroups.com
2008/1/19 rainy <rain...@gmail.com>:
> 数据库里的词语显示正常,没有乱码。

把你出问题的环境下的所有环境变量发给我看看。就是export 的输出。

rainy

unread,
Jan 19, 2008, 12:42:34 PM1/19/08
to scim-python
另外说一下,我的全局locale是en_US.UTF-8,在~/.xinitrc里设定的是zh_CN.UTF-8,都是UTF-8,应该没问题
吧?

export的输出:

declare -x ALSA_PLUGINS_DIR="/usr/lib/alsa-lib"
declare -x COLORTERM="gnome-terminal"
declare -x COLUMNS="80"
declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-
XCel0kZCvJ,guid=0c078616f594cb0ff1c6740047923581"
declare -x DESKTOP_STARTUP_ID=""
declare -x DISPLAY=":0.0"
declare -x GNOME_DESKTOP_SESSION_ID="Default"
declare -x GNOME_KEYRING_SOCKET="/tmp/keyring-TOEDMb/socket"
declare -x GTK_RC_FILES="/etc/gtk/gtkrc:/home/rainy/.gtkrc-1.2-gnome2"
declare -x G_BROKEN_FILENAMES="1"
declare -x HOME="/home/rainy"
declare -x HUSHLOGIN="FALSE"
declare -x INPUTRC="/etc/inputrc"
declare -x LANG="zh_CN.UTF-8"
declare -x LC_COLLATE="C"
declare -x LESS="-R"
declare -x LESSCHARSET="latin1"
declare -x LESS_TERMCAP_mb=" [01;31m"
declare -x LESS_TERMCAP_md=" [01;31m"
declare -x LESS_TERMCAP_me=" [0m"
declare -x LESS_TERMCAP_se=" [0m"
declare -x LESS_TERMCAP_so=" [01;44;33m"
declare -x LESS_TERMCAP_ue=" [0m"
declare -x LESS_TERMCAP_us=" [01;32m"
declare -x LIBXCB_ALLOW_SLOPPY_LOCK="true"
declare -x LINES="24"
declare -x LOGNAME="rainy"
declare -x MAIL="/var/spool/mail/rainy"
declare -x MANPATH="/usr/man:/usr/X11R6/man"
declare -x MOZ_PLUGIN_PATH="/opt/mozilla/lib/plugins:/usr/lib/mozilla/
plugins"
declare -x OLDPWD
declare -x PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/opt/
bin:/opt/mozilla/bin"
declare -x PKG_CONFIG_PATH=":/opt/mozilla/lib/pkgconfig"
declare -x PWD="/home/rainy"
declare -x QMAKESPEC="linux-g++"
declare -x SESSION_MANAGER="local/shaiya:/tmp/.ICE-unix/5960"
declare -x SHELL="/bin/bash"
declare -x SHLVL="3"
declare -x TERM="xterm"
declare -x USER="rainy"
declare -x WINDOWID="39845975"
declare -x WINDOWPATH="7"
declare -x XAUTHORITY="/home/rainy/.Xauthority"
declare -x XDG_CACHE_HOME="/home/rainy/.cache"
declare -x XDG_CONFIG_DIRS="/etc/xdg"
declare -x XDG_CONFIG_HOME="/home/rainy/.config"
declare -x XDG_DATA_DIRS="/usr/share:/usr/local/share"
declare -x XDG_DATA_HOME="/home/rainy/.local/share"

On 1月19日, 下午9时35分, "Huang Peng" <shawn.p.hu...@gmail.com> wrote:
> 2008/1/19 rainy <rainy...@gmail.com>:

rainy

unread,
Jan 19, 2008, 1:56:50 PM1/19/08
to scim-python
补充一下,我在终端运行gedit,尝试使用scim-python输入时会得到这样的警告:

(gedit:5934): Gtk-CRITICAL **: gtk_im_context_get_preedit_string:
assertion `str == NULL || g_utf8_validate (*str, -1, NULL)' failed

(gedit:5934): Pango-WARNING **: Invalid UTF-8 string passed to
pango_layout_set_text()

On 1月19日, 下午9时35分, "Huang Peng" <shawn.p.hu...@gmail.com> wrote:
> 2008/1/19 rainy <rainy...@gmail.com>:
>

Huang Peng

unread,
Jan 19, 2008, 7:40:13 PM1/19/08
to scim-...@googlegroups.com
除了这些输出,在启动gedit的时候还有其他信息么。

2008/1/20 rainy <rain...@gmail.com>:

Huang Peng

unread,
Jan 19, 2008, 7:47:13 PM1/19/08
to scim-...@googlegroups.com
我不知道你的GTK程序用的是那个IM MODULE。在我的机器上,会有环境变量GTK_IM_MODULE=scim 或者 =
scim-brdige,在这里我没有发现。
而且LC_COLLATE=C很可疑。

你把GTK_IM_MODULE改为scim-birdge或者scim,然后把LC_COLLATE=C去掉,再试试看

顺便问一下,你的机器是直接安装的ArchLinux么?还是自己手动修改了某些配置?scim下的其他输入法有没有这个问题?

2008/1/20 rainy <rain...@gmail.com>:

Ming Hua

unread,
Jan 19, 2008, 10:09:31 PM1/19/08
to scim-...@googlegroups.com
On Sun, Jan 20, 2008 at 08:47:13AM +0800, Huang Peng wrote:
>
> 而且LC_COLLATE=C很可疑。

LC_COLLATE 应该不影响,我也是用 LC_COLLATE=POSIX (和 C 一个意思) 的。系
统是 Debian unstable,其它 locale 是 en_US.UTF-8。

Ming
2008.01.19

Huang Peng

unread,
Jan 19, 2008, 10:45:54 PM1/19/08
to scim-...@googlegroups.com
LC_COLLATE是做什么用的?我看了一下man locale,里面对他的解释很模糊。

Ming Hua

unread,
Jan 19, 2008, 10:59:34 PM1/19/08
to scim-...@googlegroups.com

就我的理解,是管字符串排序用的。比如在 en_US.UTF-8 下,大小写字母就会排
在一起,A 和 a 之后才是 B 和 b;如果在 C/POSIX locale 下,就会先排大写字
母 A-Z,再排小写字母 a-z。

找个大小写字母开头的文件都有的目录,在不同的 locale 下 ls 一下,应该就很
形象了。

Ming
2008.01.19

rainy

unread,
Jan 20, 2008, 7:29:15 AM1/20/08
to scim-python
我是直接安装的ArchLinux,没修改什么,就改了locale为utf8,改了hostname。

GTK_IM_MODULE=scim在我这里可以设置也可以不设置,只要在~/.xinitrc里有LANG=zh_CN.UTF-8,scim就会
自动启动。

我试着在~/.xinitrc里加入了
export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE="scim"
export QT_IM_MODULE="scim"
结果还是一样。

我让另外两个ArchLinux用户安装了一下,结果跟我一样,也不知道ArchLinux到底是缺了什么东西还是哪里的设置跟其它发行版不同。

另外使用scim-pinyin输入一切正常。

On 1月20日, 上午8时47分, "Huang Peng" <shawn.p.hu...@gmail.com> wrote:
> 我不知道你的GTK程序用的是那个IM MODULE。在我的机器上,会有环境变量GTK_IM_MODULE=scim 或者 =
> scim-brdige,在这里我没有发现。
> 而且LC_COLLATE=C很可疑。
>
> 你把GTK_IM_MODULE改为scim-birdge或者scim,然后把LC_COLLATE=C去掉,再试试看
>
> 顺便问一下,你的机器是直接安装的ArchLinux么?还是自己手动修改了某些配置?scim下的其他输入法有没有这个问题?
>
> 2008/1/20 rainy <rainy...@gmail.com>:

rainy

unread,
Jan 20, 2008, 7:32:42 AM1/20/08
to scim-python
我发现/etc/profile里有LC_COLLATE=C,我将其注释掉,加了一条LC_COLLATE=zh_CN.UTF-8,重新启动系统后
问题依然存在。

On 1月20日, 上午8时47分, "Huang Peng" <shawn.p.hu...@gmail.com> wrote:
> 我不知道你的GTK程序用的是那个IM MODULE。在我的机器上,会有环境变量GTK_IM_MODULE=scim 或者 =
> scim-brdige,在这里我没有发现。
> 而且LC_COLLATE=C很可疑。
>
> 你把GTK_IM_MODULE改为scim-birdge或者scim,然后把LC_COLLATE=C去掉,再试试看
>
> 顺便问一下,你的机器是直接安装的ArchLinux么?还是自己手动修改了某些配置?scim下的其他输入法有没有这个问题?
>
> 2008/1/20 rainy <rainy...@gmail.com>:

Huang Peng

unread,
Jan 20, 2008, 8:06:35 AM1/20/08
to scim-...@googlegroups.com
我也想不出什么好办法了!要不你告诉我你安装的archlinux是下载的什么版本,在那里下载,我有时间安装一个试试。

2008/1/20 rainy <rain...@gmail.com>:

rainy

unread,
Jan 20, 2008, 8:28:55 AM1/20/08
to scim-python
这个镜像速度应该还不错,下载Archlinux-i686-2007.08-2.core.iso,很感谢你,浪费你这么多时间。

http://mirrors.lcuc.org.cn/archlinux/iso/2007.08/i686/

官方网站: http://www.archlinux.org/

On 1月20日, 下午9时06分, "Huang Peng" <shawn.p.hu...@gmail.com> wrote:
> 我也想不出什么好办法了!要不你告诉我你安装的archlinux是下载的什么版本,在那里下载,我有时间安装一个试试。
>
> 2008/1/20 rainy <rainy...@gmail.com>:

Huang Peng

unread,
Jan 20, 2008, 8:30:43 AM1/20/08
to scim-...@googlegroups.com
没事。:)

2008/1/20 rainy <rain...@gmail.com>:

Huang Peng

unread,
Jan 20, 2008, 10:02:21 AM1/20/08
to scim-...@googlegroups.com
我发现,ArchLinux默认的安装,很多东西都没有,所以我估计,可能是因为你有一些字符集转换的库没有安装。
你开一个终端,在里面运行下面命令,之后在使用输入法,看看这个终端里面有什么输出。
命令:
pkill scim; /usr/lib/scim-1.0/scim-launcher -e all


2008/1/20 Huang Peng <shawn....@gmail.com>:

rainy

unread,
Jan 20, 2008, 11:02:00 AM1/20/08
to scim-python
pkill scim; /usr/lib/scim-1.0/scim-launcher -e all 之后不管使用scim-python还是
scim-pinyin输入文字,终端没有任何输出,
还是停留在
Loading simple Config module ...
Creating backend ...
Loading socket FrontEnd module ...
Starting SCIM ...

On 1月20日, 下午11时02分, "Huang Peng" <shawn.p.hu...@gmail.com> wrote:
> 我发现,ArchLinux默认的安装,很多东西都没有,所以我估计,可能是因为你有一些字符集转换的库没有安装。
> 你开一个终端,在里面运行下面命令,之后在使用输入法,看看这个终端里面有什么输出。
> 命令:
> pkill scim; /usr/lib/scim-1.0/scim-launcher -e all
>
> 2008/1/20 Huang Peng <shawn.p.hu...@gmail.com>:
>
> > 没事。:)
>
> > 2008/1/20 rainy <rainy...@gmail.com>:

Huang Peng

unread,
Jan 21, 2008, 12:25:41 AM1/21/08
to scim-...@googlegroups.com
Rainy,

我安装了ArchLinux,经过调试发现在ArchLinux里面编译的python和大多数Linux发行版本里的不太一样。通常的Linux发行版本里面,Python里的Unicode对象使用ucs4来表示,而ArchLinux里面使用ucs2表示,不知道ArchLinux为什么这样做?(
http://docs.python.org/api/unicodeObjects.html#l2h-480 )
我已经在项目网站上创建了bug,请参考
http://code.google.com/p/scim-python/issues/detail?id=43
。这个BUG会在0.1.10中修复。

Huang Peng

2008/1/21 rainy <rain...@gmail.com>:

Huang Peng

unread,
Jan 21, 2008, 12:52:15 AM1/21/08
to scim-...@googlegroups.com
有人可以提供ucs2 -> ucs4的c代码么?

2008/1/21 Huang Peng <shawn....@gmail.com>:

Huang Peng

unread,
Jan 21, 2008, 2:32:06 AM1/21/08
to scim-...@googlegroups.com
现在已经在svn开发库的里修复了,版本号是581,请测试一下吧。

2008/1/21 Huang Peng <shawn....@gmail.com>:

rainy

unread,
Jan 21, 2008, 8:21:13 AM1/21/08
to scim-python
问题解决,非常感谢你的帮助,我已经在LinuxSir的ArchLinux版块发布了PKGBUILD。

http://www.linuxsir.org/bbs/thread322006.html

On 1月21日, 下午3时32分, "Huang Peng" <shawn.p.hu...@gmail.com> wrote:
> 现在已经在svn开发库的里修复了,版本号是581,请测试一下吧。
>
> 2008/1/21 Huang Peng <shawn.p.hu...@gmail.com>:
>
> > 有人可以提供ucs2 -> ucs4的c代码么?
>
> > 2008/1/21 Huang Peng <shawn.p.hu...@gmail.com>:

Jick Nan

unread,
Jan 22, 2008, 2:05:54 AM1/22/08
to scim-python
On Jan 21, 3:32 pm, "Huang Peng" <shawn.p.hu...@gmail.com> wrote:
> 现在已经在svn开发库的里修复了,版本号是581,请测试一下吧。

Slackware 上应该也有这个问题,重新 checkout 最新到 svn repos 后已经解决。这也不奇怪,slackware 和
ArchLinux 本来就有渊源 :P

感谢 Huang Peng,这个输入法让我很兴奋,以前使用的是 scim+fcim 但是现在那个项目停止了。我平时都用 C 写 code,不是
很想参与 c++ 的项目。但 Python 是我一直向往的语言,因此想参与其中,自己用着方便,同时也贡献自由软件社区。请问我能加入这个项目
么?

PS: 已经看完了本 ml 的所有信件,还好不太多 :P

Huang Peng

unread,
Jan 22, 2008, 2:25:35 AM1/22/08
to scim-...@googlegroups.com
2008/1/22 Jick Nan <jick...@gmail.com>:

当然欢迎了。你可以先看看代码,看看有什么想法,之后我可以一起讨论以后具体做点儿什么,什么需要完善,等等。

Reply all
Reply to author
Forward
0 new messages