windows下Jb开发的程序移植到redhat linux7.2下的中文显示问题

whyyy78 2002-01-31 03:04:23
总是出现一堆乱码,
我在linux下加了字体,时间栏上能显示中文了,可我的程序运行起来就是乱码。
请高手指点!
...全文
115 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
whyyy78 2002-01-31
  • 打赏
  • 举报
回复
多谢,我再试试!
BugHunterPro 2002-01-31
  • 打赏
  • 举报
回复
方法:
拷贝中文字体文件simson.ttf到jre/lib/fonts目录下面
修改fonts/fonts.dir文件
simson.ttf ....忘记怎么写了,可以拷贝font.properties需要的字体字符串
在首行数字加一
remote_roamer 2002-01-31
  • 打赏
  • 举报
回复
RedHat 7.1+Chinput 3.0.1在GNOME下简体中文显示与输入(v0.2 最新修订于2001年5月9日)
(Email: hust_cool@263.net)


一、GNOME的中文显示
RedHat 7.1采用glibc2.2.2和XFree86 4.0.3,对国际化的支持有了很大的进步。GNOME是优秀的桌面平台,也是目前
Linux使用的对国际化支持最好的桌面平台。这里我主要讲如何实现在RedHat 7.1下面显示和输入简体中文。
为了简单起见,仅仅讲述GB2312编码的字符集。

因为XFree86 4.0.3对显卡的支持不如XFree86 3.3.6广泛,所以RedHat 7.1里面同时保留了XFree86 3.3.6
可以用xdpyinfo查看XFree86的版本号。方法
xdpyinfo | grep release | sed s/^.*[^[:digit:]]//
看看结果是不是4003,如果不是,表明版本不是4.0.3,您将不能用本文中的方法设置True Type字体。
(XFree86 3.3.6不支持xtt模块,您需要参考其它资料设置)

1:设置中文locale
Linux采用locale技术以实现对多语言的支持。因此首先要设置中文locale。
RedHat 7.1安装的时候有语言选择的选项,要求至少选择中文(Chinese)选项,否则很多中文的按钮、菜单可就看不到了
如果不能确定,那就把所有语言都选上。
如果你使用的是bash,那么请编辑~/.bash_profile文件,加上
export LC_ALL=zh_CN
export LANG=zh_CN
然后运行. .bash_profile或者重新登录账号以使设置生效。
编辑~/.i18n文件,内容为:
LANG="zh_CN"

2:测试中文locale
在控制台上运行date命令,如果你能看到乱码证明中文locale已经生效。
因为glibc2.2和2.1的locale名称有点不同,所以还要做一点工作
cd /usr/share/locale
ln -s zh_CN.GB2312 zh_CN
此时运行startx进入GNOME桌面,你将看到任务栏上的时间已经变成中文显示了。如果你默认的不是GNOME桌面则可以
运行switchdesk gnome切换到GNOME桌面。

3:显示Windows下的中文文件名
如果你还装了中文Windows 95/98/Me,那么现在就可以显示中文文件名了。RedHat 7.1采用2.4.2的内核,可以支持
简体中文代码页。使用方法:在mount后加选项-o codepage=936,iocharset=cp936。为了永久生效,可以修改/etc/fstab
文件。例如我的/etc/fstab文件内容为:
LABEL=/    /    ext2   defaults   1 1
/dev/hda1   /mnt/c vfat   defaults,codepage=936,iocharset=cp936 0 0
/dev/hda7   /mnt/d vfat   defaults,codepage=936,iocharset=cp936 0 0
/dev/cdrom  /mnt/cdrom iso9660 noauto,owner,ro 0 0
/dev/fd0   /mnt/floppy auto  noauto,owner 0 0
none     /proc   proc   defaults   0 0
none     /dev/pts devpts gid=5,mode=620 0 0
/dev/hda10  swap   swap    defaults   0 0

4:安装中文TrueType字体
XFree86 4.x可以比较好的支持TrueType字体。TrueType字体可以无级缩放,显示效果非点阵字体可比。为了达到
Microsoft Windows那样的漂亮字体效果,我们可以安装中文TrueType字体。最简单的方法就是直接使用Windows 98下
的中文字体。
mkdir /usr/share/fonts/default/TrueType
cp /mnt/c/windows/fonts/simsun.ttf /usr/share/fonts/default/TrueType
cd /usr/share/fonts/default/TrueType
ttmkfdir > fonts.dir
因为ttmkfdir对Windows字体的编码识别有问题,因此需要手动修改一下。
编辑fonts.dir文件,将
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-fcd8859-15
修改为
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
然后设置可缩放字体
cp fonts.dir fonts.scale
设置编码文件
cp /usr/X11R6/lib/X11/fonts/encodings/encodings.dir .
我们必须指定字体路径。
编辑/etc/X11/XF86Config-4文件,加上
所需要的字体路径,如下所示:(#表示注释行,以下同)
Section "Files"
FontPath "unix/:7100"
FontPath "/usr/share/fonts/default/TrueType" (关键)
EndSection

还有在该文件的Modules部分,请加上xtt模块,同时必须取消freetype模块,两模块不可同时使用。
例如:

Section "Module"
Load "dbe" # Double-buffering
# Load "GLcore" # OpenGL support
# Load "dri" # Direct rendering infrastructure
Load "glx" # OpenGL X protocol interface
Load "extmod" # Misc. required extensions
Load "v4l" # Video4Linux
# Load "pex5" # PHIGS for X 3D environment (obsolete)
# Load "record" # X event recorder
# Load "xie" # X Image Extension (obsolete)
# You only need the following two modules if you do not use xfs.
# Load "freetype" # TrueType font handler
Load "xtt" # TrueType font handler
# Load "type1" # Adobe Type 1 font handler
EndSection

注:此方法不需要关闭xfs,比较简单。

5:设置GNOME的TrueType中文字体
为了使我们设置的TrueType字体能够在GNOME下面使用,必须修改GNOME的资源配置文件。
编辑/etc/gtk/gtkrc.zh_CN文件,设置字体如下:
style "gtk-default-zh-cn" {
fontset = " -misc-simsun-medium-r-normal--14-0-0-0-p-0-*-* "
}
class "GtkWidget" style "gtk-default-zh-cn"

再编辑/etc/gnome/gtkrc.zh_CN文件,将所有的FontSet设置为:
fontset = "-misc-simsun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0"
此时运行startx进入GNOME桌面,就可以看到漂亮的TrueType中文字体啦!

6:中文输入
这里我们采用Chinput 3.0.1作为中文输入服务器。Chinput 3.0.1可以支持XIM协议。
除了Chinput 3.0.1的rpm包,另外还需要GNU pth和UNICON的输入法部分。
首先安装pth
rpm -ivh pth-1.3.7-3.i386.rpm
然后安装UNICON输入法模块
rpm -ivh unicon-3.0.2-im_2.i386.rpm
最后安装Chinput输入法服务器
rpm -ivh Chinput-3.0.1-2.i386.rpm
我们必须针对RedHat7和自己设置的字体做一些设置
cp /usr/lib/ZWinPro/Chinput.ad ~/.chinput
编辑~/.chinput文件
按如下设置
chinput.gblocale = zh_CN
chinput.big5locale = zh_CN

chinput.gbfont = -misc-simsun-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0
chinput.bigfont = -misc-simsun-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0

remote_roamer 2002-01-31
  • 打赏
  • 举报
回复
这个涉及到很多方面.
chinut不是作内核汉化.只是接管xterm的汉化环境.字体只是在xwindow下显示汉字.
这和java不能显示中文无关.我猜想你的问题表现在System.out.println();都无法打出汉字是吗?
这和linux的环境参数有关.同时javac或者java都有参数-encoding 也有关系,不过不能确定.最好装一个中文的linux
y
h
huohuo
whyyy78 2002-01-31
  • 打赏
  • 举报
回复
thanks.
我重装了chinput,可是没成功,也不能输入汉字,你能说详细点吗?
有没有具体的步骤参考?
remote_roamer 2002-01-31
  • 打赏
  • 举报
回复
这和字体无关.你要用linx的内核汉化的环境,或者使用环境变量设置.挺多的参数可以参看linux的相关内容!

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧