linux 实现中文

Linux 安装完后,中文字体整体感觉很虚,虽然不想干嘛,但上网这样看字也真不习惯.需要手动美化一下.
自己安装字体很麻烦,因为 Linux 字体显示引擎可不是像 Windows 里面复制一下字体就可以用那么容易.
况且就算安装了windows的字体,其显示起来都显得粗糙,因此为了美观,需要对linux的字体进行美化,这在网上有准备好的美化包可用.

  • 先下载美化包 linuxsir-fontconfig-3.4.bin ,8.9MB,如果连接失效就直接用文件名搜索一下.
  • 运行程序( 下载后的文件可能没有运行权限,需要手动设置一下 文件鼠标右键 --- 属性 --- 权限 执行)
  • 安装需要几分钟,有提示的,等待就可以了,完成后注消下,再看字体就清楚多啦
    注:linux下bin文件格式的安装是最简单的

功能介绍:

  • 本程序包适合在Redhat 9.0/AS 3,Fedora core 1/2或mandrake 9.1/9.2/10上安装。
  • 直接执行即可 解压--安装--设置 一步到位,可以完全脱离键盘操作。在安装过程中有具体的中文提示。
  • 本程序包含有一个fcitx的rpm程序包。在安装过程序会有提示是否选择安装。脚本会针检测Fedora 2的IIim输入法服务并永久关闭。可在KDE,GNOME桌面环境中自动启动fcitx而无需进行任何设置。
  • 商业字体simsun及tatoma会默认安装.无需安装其它字体即可达到较好的效果。
  • 本字体美化包实现了在KDE(Mandrake美化包不能),GNOME等桌面环境及mozilla等应用程序中文字体的粗体、斜体、粗斜体的正常显示。
  • 对于gtk1的应用程序,如gimp,xmms,gftp等的中文字体也达到了和gtk2字体一样的效果。同样也可正常显示粗体、斜体、粗斜体。
  • 安装了一个脚本程序在/etc/profile.d/cfxmms.sh ,此脚本的功能即可修改xmms中的配置文件中有关字体的选项,无需配置xmms即可直接正常使用(不修改其它参数)。

注意: 此程序只适合安装在没有对字体等特别设置过的 Redhat 9.0/AS 3,Fedora core 1/2或mandrake 9.1/9.2/10 上,其他可能会产生问题 

 

 

 

如何实现英文环境(或英文菜单)而使用中文输入或显示
Rh9中怎么设置才可以用中文输入而是英文菜单?
RH9中语言选英文,但想输入中文,i18n如何修改?
 
LANGUAGE=en_US.UTF-8
LC_CTYPE=zh_CN.GB18030
应该就可以了

不过我的~/.i18n是这样的
LANG=zh_CN.GB18030
LANGUAGE=en_US.UTF-8

实现汉字滚动,你需要使用 Linux 上的 Framebuffer 设备驱动程序。以下是实现汉字滚动的基本步骤: 1. 打开 Framebuffer 设备,并获取屏幕分辨率和字体信息等。 2. 读取并显示需要滚动的汉字。 3. 将汉字从屏幕上向左滚动。 4. 不断重复步骤 3 直到滚动结束。 在 Arm-Linux 上,你可以使用 fbdev 或者 DirectFB 等库来实现 Framebuffer 的控制。下面是一个简单的示例代码,可以实现汉字的滚动显示: ``` #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <sys/mman.h> #include <linux/fb.h> #define FONT_WIDTH 16 #define FONT_HEIGHT 16 int main(int argc, char *argv[]) { int fd; struct fb_var_screeninfo vinfo; struct fb_fix_screeninfo finfo; char *fbp; long int screensize; // 打开 Framebuffer 设备 fd = open("/dev/fb0", O_RDWR); if (fd == -1) { perror("Error: cannot open framebuffer device"); exit(1); } // 获取屏幕信息 if (ioctl(fd, FBIOGET_FSCREENINFO, &finfo) == -1) { perror("Error reading fixed information"); exit(2); } if (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo) == -1) { perror("Error reading variable information"); exit(3); } // 计算屏幕缓冲区大小 screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8; // 映射屏幕缓冲区 fbp = (char *)mmap(0, screensize, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); if ((int)fbp == -1) { perror("Error: failed to map framebuffer device to memory"); exit(4); } // 设置字体颜色和背景色 unsigned int fgcolor = 0x00ff0000; // 红色 unsigned int bgcolor = 0x00000000; // 黑色 // 显示汉字 char *text = "你好,世界!"; int len = strlen(text); int x = vinfo.xres - 1; // 从右边开始滚动 int y = (vinfo.yres - FONT_HEIGHT) / 2; // 在屏幕中央 int i, j, k; for (i = 0; i < len; i++) { // 获取汉字字形数据 unsigned char *fontdata = get_font_data(text[i]); if (fontdata == NULL) { continue; } // 绘制汉字 for (j = 0; j < FONT_HEIGHT; j++) { for (k = 0; k < FONT_WIDTH; k++) { int pixel = (fontdata[j] >> (7 - k)) & 0x01; if (pixel) { *((unsigned int*)(fbp + (x + k) * 4 + (y + j) * finfo.line_length)) = fgcolor; } else { *((unsigned int*)(fbp + (x + k) * 4 + (y + j) * finfo.line_length)) = bgcolor; } } } // 滚动汉字 x -= FONT_WIDTH; if (x < -FONT_WIDTH) { x = vinfo.xres - 1; } } // 解除屏幕缓冲区映射 munmap(fbp, screensize); // 关闭 Framebuffer 设备 close(fd); return 0; } ``` 请注意,上述代码仅仅是一个简单的示例,实际上还需要处理一些细节问题,比如汉字字形数据的获取,以及滚动速度的控制等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值