默认情况下,GNU bash 假定每个字符为一个字节长且一列宽。Marcin 'Qrczak' Kowalczyk 和 Ricardas Cepas 编写了一个针对 bash 2.04 的补丁,使 bash 能够识别 UTF-8 编码中的多字节字符。bash-2.04-diff
此补丁不支持双倍宽度字符、组合字符和双向文本。似乎需要对 readline 重新显示引擎进行彻底的重新设计。
在某些安装中,默认情况下 telnet 不是 8 位干净的。为了能够将 Unicode 击键发送到远程主机,您需要将 telnet 设置为 “outbinary” 模式。有两种方法可以做到这一点:
$ telnet -L <host>
和
$ telnet
telnet> set outbinary
telnet> open <host>
通信程序 C-Kermit http://www.columbia.edu/kermit/ckermit.html (一个用于连接设置、telnet、文件传输的交互式工具,支持 TCP/IP 和串行线路),在 7.0 或更新版本中,理解文件和传输编码 UTF-8 和 UCS-2,并理解终端编码 UTF-8,并在这些编码和许多其他编码之间进行转换。这些功能的文档可以在 http://www.columbia.edu/kermit/ckermit2.html#x6.6 中找到。
Netscape 4.05 或更新版本可以显示 UTF-8 编码的 HTML 文档。文档只需要在 <head> 和 </head> 标签之间添加以下行:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Netscape 4.05 或更新版本也可以显示带有字节顺序标记的 UCS-2 编码的 HTML 和文本文件。
http://www.netscape.com/computing/download/
Mozilla milestone M16 的国际化功能比 Netscape 4 好得多。它可以显示 UTF-8 编码的 HTML 文档,并支持更多语言。唉,CJK 字体存在一个外观问题:某些字形可能比行高大,从而与上一行或下一行重叠。
Amaya 4.2.1 (http://www.w3.org/Amaya/, http://www.w3.org/Amaya/User/SourceDist) 现在对 UTF-8 编码的 HTML 页面进行了有限的处理。它可以识别编码,但仅显示 ISO-8859-1 和符号字符;它只访问字体:
-adobe-times-*-iso8859-1
-adobe-helvetica-*-iso8859-1
-adobe-new century schoolbook-*-iso8859-1
-adobe-courier-*-iso8859-1
-adobe-symbol-*-adobe-fontspecific
实际上,Amaya 不仅仅是一个浏览器,它还是一个 HTML 编辑器。在浏览器中,Amaya 的优势在于其速度(在内存充足的情况下)以及数学公式的渲染(MathML 支持)。
lynx-2.8 有一个选项屏幕(按键 'O'),允许设置显示字符集。当在 UTF-8 模式下的 xterm 或 Linux 控制台中运行时,将其设置为 “UNICODE UTF-8”。请注意,为了使此设置在当前浏览器会话中生效,您必须在 “Accept Changes” 字段上确认;为了使此设置在未来的浏览器会话中生效,您必须启用 “Save options to disk” 字段,然后在 “Accept Changes” 字段上确认。
现在,再次强调,文档只需要在 <head> 和 </head> 标签之间添加以下行:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
当您查看 UTF-8 编码的文本文件时,还需要传递命令行选项 “-assume_local_charset=UTF-8”(仅影响 file:/... URL)或 “-assume_charset=UTF-8”(影响所有 URL)。在 lynx-2.8.2 中,您也可以在选项屏幕(按键 'O')中将假定的文档字符集更改为 “utf-8”。
选项屏幕中还有一个选项可以设置 “preferred document character set”(首选文档字符集)。但它没有效果,至少对于 file:/... URL 和由 apache-1.3.0 提供的 http://... URL 而言是如此。
但是,存在间距和换行问题。(查看 x-utf8.html 的俄语部分,或 utf-8-demo.txt。)
此外,在配置了 --enable-prettysrc 的 lynx-2.8.2 中,当显示字符集设置为 “UNICODE UTF-8” 时,漂亮的配色方案不再正常工作。这可以通过一个简单的补丁 lynx282.diff 修复。
Lynx 开发人员说:“对于任何认真使用 lynx 进行 UTF-8 屏幕输出的情况,仍然建议使用 slang lib 和 -DSLANG_MBCS_HACK 进行编译。”
最新稳定版本:ftp://ftp.gnu.org/pub/gnu/lynx/lynx-2.8.2.tar.gz
较新的开发快照:http://lynx.isc.org/current/, ftp://lynx.isc.org/current/
Akinori Ito 的 w3m http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/ 是一个用于 HTML 页面和纯文本文件的文本模式浏览器。它对 HTML 表格、枚举等的布局比 lynx 的更漂亮。w3m 也可以用作高质量的 HTML 到纯文本转换器。
w3m 0.1.10 具有针对三种主要日语编码的命令行选项,但也可以用于 UTF-8 编码的文件。在没有命令行选项的情况下,您通常需要按 Ctrl-L 来刷新显示,并且西里尔字母和 CJK 段落中的换行效果不佳。
为了解决这个问题,Hironori Sakamoto 提供了一个补丁 http://www2u.biglobe.ne.jp/~hsaka/w3m/,该补丁添加了 UTF-8 作为显示编码。
Alan Wood 的页面 http://www.hclrss.demon.co.uk/unicode/#links 和 James Kass 的页面 http://home.att.net/~jameskass/ 上可以找到一些浏览器的测试页面。
Gáspár Sinai 的 yudit http://www.yudit.org/ 是一个用于 X Window 系统的顶级 Unicode 文本编辑器。它支持同时处理多种语言、输入法、本地字符标准转换。它具有仅使用英语键盘即可输入所有语言文本的功能,使用键盘配置映射。
它可以编译为三个版本:Xlib GUI、KDE GUI 或 Motif GUI。
自定义非常容易。通常,您首先自定义字体。从字体菜单中,我选择了 “Unicode”。然后,由于命令 “xlsfonts ‘*-*-iso10646-1’” 仍然显示出一些歧义,我选择了 13 的字体大小(以匹配 Markus Kuhn 的 13 像素固定字体)。
接下来,您将自定义您的输入法。“Straight”、“Unicode” 和 “SGML” 输入法最值得注意。有关其他内置输入法的详细信息,请查看 /usr/local/share/yudit/data/。
要更改下一个会话的默认设置,请编辑您的 $HOME/.yuditrc 文件。
通用编辑器功能仅限于编辑、剪切&粘贴和搜索&替换。没有撤消功能。
此版本不太容易学习,因为它带有自制的 GUI,并且没有容易访问的帮助。但它具有撤消功能,因此应该比 1.5 版本更实用。
yudit 可以使用 TrueType 字体显示文本;请参阅上面的 “TrueType 字体” 部分。Bitstream Cyberbit 提供了良好的效果。为了让 yudit 找到字体,请将其符号链接到 /usr/local/share/yudit/data/cyberbit.ttf
。
vim(截至 6.0r 版本)对 UTF-8 具有良好的支持:在 UTF-8 区域设置中启动时,它假定控制台和正在编辑的文本文件使用 UTF-8 编码。它还支持双倍宽度 (CJK) 字符和组合字符,因此非常适合启用 UTF-8 的 xterm。
安装:从 http://www.vim.org/ 下载。解压四个部分后,使用 --with-features=big
--enable-multibyte
参数调用 ./configure
(或编辑 src/Makefile 以包含 --with-features=big
和 --enable-multibyte
选项)。这将启用 FEAT_MBYTE 功能。然后执行 “make” 和 “make install”。
vim 可以用于编辑其他编码的文件。例如,要编辑 BIG5 编码的文件::e ++cc=BIG5 filename
。iconv 支持的所有编码名称都被接受。此外:vim 会自动区分 UTF-8 和 ISO-8859-1 文件,而无需任何命令行选项。
Paul Sheer 的 cooledit http://www.cooledit.org/ 是一个适用于 X Window 系统的优秀文本编辑器。自 3.15 版本以来,它支持 Unicode,包括希伯来语(但不包括阿拉伯语)的双向文本。
通过将 “-DDO_NOT_USE_VGALIB” 添加到 CFLAGS,可以解决有关缺少 “vga_setpage” 函数的构建错误消息。
要在 UTF-8 区域设置中查看 UTF-8 文件,您必须修改 “Options -> Switches” 面板中的设置:启用复选框 “Display characters outside locale”(显示区域设置之外的字符)。我还发现有必要禁用 “Spellcheck as you type”(键入时拼写检查)。
为了查看同时包含欧洲字符和 CJK 字符的文本,cooledit 需要一个同时包含两者的字体,例如 GNU unifont(请参阅 “X11 Unicode 字体” 部分):启动一次
$ cooledit -fn -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1
cooledit 将在所有未来的调用中使用此字体。不幸的是,可以通过键盘输入的字符仅限于 ISO-8859-1 字符,并且通过 cooledit 特定的组合机制,可以输入 ISO-8859-2 字符。在 cooledit 中输入任意 Unicode 字符是可能的,但有点繁琐。
首先,您应该阅读 Emacs 手册中的 “International Character Set Support”(国际字符集支持)部分(节点 “International”)。特别注意,您需要使用以下命令启动 Emacs:
$ emacs -fn fontset-standard
以便它将使用包含大量国际字符的字体集。在短期内,有两种软件包可以在 Emacs 中使用 UTF-8。它们都不需要重新编译 Emacs。
您可以单独使用这些软件包中的任何一个,也可以一起使用。emacs-utf “unicode-utf8” 编码的优点是:加载速度更快,并且更好地处理组合字符(对于泰语很重要)。Mule-UCS / oc-unicode “utf-8” 编码的优点是:它可以应用于进程缓冲区(例如 M-x shell),而不仅仅是文件的加载和保存;并且它更好地尊重字符的宽度(对于埃塞俄比亚语很重要)。但是,它的可靠性较差:在对文件进行大量编辑后,我看到某些 Unicode 字符在文件保存后被替换为 U+FFFD。(但这可能是 Emacs 20.5 和 20.6 中的错误,这些错误在 Emacs 20.7 中已修复。)
要安装 emacs-utf 软件包,请编译程序 “utf2mule” 并将其安装在 $PATH 中的某个位置,还将 unicode.el、muleuni-1.el、unicode-char.el 安装在某个位置。然后添加以下行:
(setq load-path (cons "/home/user/somewhere/emacs" load-path))
(if (not (string-match "XEmacs" emacs-version))
(progn
(require 'unicode)
;(setq unicode-data-path "..../UnicodeData-3.0.0.txt")
(if (eq window-system 'x)
(progn
(setq fontset12
(create-fontset-from-fontset-spec
"-misc-fixed-medium-r-normal-*-12-*-*-*-*-*-fontset-standard"))
(setq fontset13
(create-fontset-from-fontset-spec
"-misc-fixed-medium-r-normal-*-13-*-*-*-*-*-fontset-standard"))
(setq fontset14
(create-fontset-from-fontset-spec
"-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-fontset-standard"))
(setq fontset15
(create-fontset-from-fontset-spec
"-misc-fixed-medium-r-normal-*-15-*-*-*-*-*-fontset-standard"))
(setq fontset16
(create-fontset-from-fontset-spec
"-misc-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard"))
(setq fontset18
(create-fontset-from-fontset-spec
"-misc-fixed-medium-r-normal-*-18-*-*-*-*-*-fontset-standard"))
; (set-default-font fontset15)
))))
到您的 $HOME/.emacs 文件。要激活任何字体集,请使用 Mule 菜单项 “Set Font/FontSet” 或 Shift-鼠标向下-1。不同大小的字体集中 Unicode 的覆盖范围可能取决于已安装的字体;以下是 UTF-8-demo.txt (12, 13, 14, 15, 16, 18) 和 Mule 脚本示例 (12, 13, 14, 15, 16, 18) 的各种大小的屏幕截图。要将字体集指定为启动时第一个框架的初始字体集,请取消注释上面代码片段中的 set-default-font
行。要安装 oc-unicode 软件包,请执行命令:
$ emacs -batch -l oc-comp.el
并将生成的文件 un-define.elc
以及 oc-unicode.el
、oc-charsets.el
、oc-tools.el
安装在某个位置。然后添加以下行:
(setq load-path (cons "/home/user/somewhere/emacs" load-path))
(if (not (string-match "XEmacs" emacs-version))
(progn
(require 'oc-unicode)
;(setq unicode-data-path "..../UnicodeData-3.0.0.txt")
(if (eq window-system 'x)
(progn
(setq fontset12
(oc-create-fontset
"-misc-fixed-medium-r-normal-*-12-*-*-*-*-*-fontset-standard"
"-misc-fixed-medium-r-normal-ja-12-*-iso10646-*"))
(setq fontset13
(oc-create-fontset
"-misc-fixed-medium-r-normal-*-13-*-*-*-*-*-fontset-standard"
"-misc-fixed-medium-r-normal-ja-13-*-iso10646-*"))
(setq fontset14
(oc-create-fontset
"-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-fontset-standard"
"-misc-fixed-medium-r-normal-ja-14-*-iso10646-*"))
(setq fontset15
(oc-create-fontset
"-misc-fixed-medium-r-normal-*-15-*-*-*-*-*-fontset-standard"
"-misc-fixed-medium-r-normal-ja-15-*-iso10646-*"))
(setq fontset16
(oc-create-fontset
"-misc-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard"
"-misc-fixed-medium-r-normal-ja-16-*-iso10646-*"))
(setq fontset18
(oc-create-fontset
"-misc-fixed-medium-r-normal-*-18-*-*-*-*-*-fontset-standard"
"-misc-fixed-medium-r-normal-ja-18-*-iso10646-*"))
; (set-default-font fontset15)
))))
到您的 $HOME/.emacs 文件。您可以像使用 emacs-utf 软件包一样选择合适的字体集。为了打开 UTF-8 编码的文件,您将键入:
M-x universal-coding-system-argument unicode-utf8 RET
M-x find-file filename RET
或
C-x RET c unicode-utf8 RET
C-x C-f filename RET
(如果您喜欢 oc-unicode/Mule-UCS,则使用 utf-8 而不是 unicode-utf8)。为了启动具有 UTF-8 I/O 的 shell 缓冲区,您将键入:
M-x universal-coding-system-argument utf-8 RET
M-x shell RET
(这仅适用于 oc-unicode/Mule-UCS。)有一个较新的版本 Mule-UCS-0.81。不幸的是,您需要从源代码重建 emacs 才能使用它。
请注意,所有这些都仅适用于窗口模式下的 Emacs 20,而不适用于终端模式。截至撰写本文时,上述任何软件包均不适用于 Emacs 21。
Richard Stallman 计划在长期内将集成的 UTF-8 支持添加到 Emacs 中,XEmacs 开发人员组也是如此。
(本节由 Gilbert Baumann 撰写。)
以下是如何使 XEmacs(配置了 MULE 的 20.4 版本)支持 UTF-8 编码的方法。不幸的是,您需要其源代码才能对其进行修补。
首先,您需要 Tomohiko Morioka 提供的这些文件:
http://turnbull.sk.tsukuba.ac.jp/Tools/XEmacs/xemacs-21.0-b55-emc-b55-ucs.diff 和 http://turnbull.sk.tsukuba.ac.jp/Tools/XEmacs/xemacs-ucs-conv-0.1.tar.gz
.diff 是针对 C 源代码的差异文件。tar 包是 elisp 代码,它提供了大量代码表,用于映射到 Unicode 和从 Unicode 映射。正如 diff 文件的名称所暗示的那样,它是针对 XEmacs-21 的;我需要帮助 `patch` 一下。与我的 XEmacs-20.4 源代码最显着的区别是 file-coding.[ch] 被称为 mule-coding.[ch]。
对于那些不熟悉 XEmacs-MULE 内容的人(像我一样),一个快速指南:
我们称之为编码的东西,MULE 称之为 “coding-system”(编码系统)。最重要的命令是:
M-x set-file-coding-system
M-x set-buffer-process-coding-system [comint buffers]
和变量 `file-coding-system-alist`,它指导 `find-file` 猜测使用的编码。在东西运行起来之后,我做的第一件事就是 这个。
此代码会查看由 -*- 引入的特殊模式行,该模式行位于即将打开的文件的前 600 个字节中的某个位置;如果现在有一个字段 “Encoding: xyz;” 并且 xyz 编码(Emacs 术语中的 “coding system”)存在,则选择该编码。所以现在你可以这样做,例如:
;;; -*- Mode: Lisp; Syntax: Common-Lisp; Package: CLEX; Encoding: utf-8; -*-
XEmacs 在此处进入 utf-8 模式。
在一切运行起来后,我将 \u03BB (希腊字母 lambda) 定义为一个宏,例如:
(defmacro \u03BB (x) `(lambda .,x))
使用 XFree86-4.0.1,如果您相应地设置区域设置(请参阅上文),并将行 “Xedit*international: true” 添加到您的 $HOME/.Xdefaults 文件中,xedit 能够编辑 UTF-8 文件。
截至 6.1.2 版本,aXe 仅支持 8 位区域设置。如果您将行 “Axe*international: true” 添加到您的 $HOME/.Xdefaults 文件中,它将直接崩溃。
截至 4.30 版本,pine 不能合理地用于查看或编辑 UTF-8 文件。在启用 UTF-8 的 xterm 中,它存在严重的重绘问题。
mined98 是 Michiel Huisjes、Achim Müller 和 Thomas Wolff 开发的一个小型文本编辑器。http://www.inf.fu-berlin.de/~wolff/mined98.tar.gz 它允许您在 UTF-8 或 8 位 xterm 中编辑 UTF-8 或 8 位编码的文件。它还具有强大的输入 Unicode 字符的功能。
mined 允许您编辑 8 位编码和 UTF-8 编码的文件。默认情况下,它使用自动检测启发式方法。如果您不想依赖启发式方法,请在编辑 UTF-8 文件时传递命令行选项 -u
,或者在编辑 8 位编码文件时传递 +u
。您可以随时从编辑器内部更改解释:它在菜单行中显示编码(8 位为 “L:h”,UTF-8 为 “U:h”)。单击这些字符中的第一个字符即可更改它。
mined 知道双倍宽度和组合字符,并正确显示它们。它还具有组合字符的特殊显示模式。
mined 还具有滚动条和非常漂亮的下拉菜单。唉,“Home”、“End”、“Delete” 键不起作用。
qemacs 0.2 是 Fabrice Bellard 开发的一个小型文本编辑器。http://www-stud.enst.fr/~bellard/qemacs/ 具有 Emacs 键绑定。它在 UTF-8 控制台或 xterm 中运行,并且可以编辑 8 位编码和 UTF-8 编码的文件。它仍然有一些粗糙的地方,但进一步的开发正在进行中。
MIME:RFC 2279 将 UTF-8 定义为 MIME 字符集,可以使用 8bit、quoted-printable 和 base64 编码进行传输。较旧的 MIME UTF-7 提案 (RFC 2152) 被认为是已弃用的,不应再使用。
1999 年 1 月 1 日之后发布的邮件客户端应能够发送和显示 UTF-8 编码的邮件,否则它们被认为是不足的。但是这些邮件必须带有 MIME 标签:
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
简单地将 UTF-8 文件管道传输到 “mail” 而不关心 MIME 标签将不起作用。邮件客户端实现者应查看 http://www.imc.org/imc-intl/ 和 http://www.imc.org/mail-i18n.html。
现在介绍各个邮件客户端(或 “邮件用户代理”):
未修补的 pine 4.30 版本的状况如下:
Pine 不进行字符集转换。但它允许您在 UTF-8 文本窗口(Linux 控制台或 xterm)中查看 UTF-8 邮件。
通常,每次您查看 UTF-8 编码的邮件时,Pine 都会警告不同的字符集。要消除此警告,请选择 S(设置),然后选择 C(配置),然后将 “character-set”(字符集)的值更改为 UTF-8。此选项不会执行任何操作,除了减少警告,因为 Pine 没有 UTF-8 的内置知识。
另请注意,Pine 对 Unicode 字符的概念非常有限:它将显示拉丁字符和希腊字符,但不显示其他类型的 Unicode 字符。
Robert Brady 的补丁 <robert@suse.co.uk> http://www.ents.susu.soton.ac.uk/~robert/pine-utf8-0.1.diff 为 Pine 添加了 UTF-8 支持。使用此补丁,它可以正确解码和打印标头和正文。该补丁依赖于 GNOME libunicode http://cvs.gnome.org/lxr/source/libunicode/。
但是,对齐在许多地方仍然被破坏;回复邮件不会导致字符集按需转换;并且编辑器 pico 无法处理多字节字符。
kmail(截至 KDE 1.0)根本不支持 UTF-8 邮件。
Netscape Communicator 的 Messenger 可以发送和显示 UTF-8 编码的邮件,但它需要少量的人工用户干预。
要发送 UTF-8 编码的邮件:打开 “Compose”(撰写)窗口后,但在开始撰写邮件之前,从菜单中选择 “View -> Character Set -> Unicode (UTF-8)”。然后撰写邮件并发送它。
当您收到 UTF-8 编码的邮件时,Netscape 不幸地不会立即以 UTF-8 显示它,甚至没有给出邮件以 UTF-8 编码的视觉线索。您必须从菜单中手动选择 “View -> Character Set -> Unicode (UTF-8)”。
为了显示 UTF-8 邮件,Netscape 使用不同的字体。您可以在 “Edit -> Preferences -> Fonts”(编辑 -> 首选项 -> 字体)对话框中调整您的字体设置;选择 “Unicode” 字体类别。
mutt-1.2.x,可从 http://www.mutt.org/ 获得,仅对 UTF-8 提供初步支持:它可以将 UTF-8 转换为 8 位显示字符集。mutt-1.3.x 开发分支也支持 UTF-8 作为显示字符集,因此您可以在 UTF-8 xterm 中运行 Mutt,并且对 MIME 和字符集转换(依赖于 iconv)提供全面支持。
如果将以下行添加到您的 $HOME/.Xdefaults
文件中,则带有 Tk�8.4a1 的 exmh 2.1.2 可以识别并正确显示 UTF-8 邮件(不包含 CJK 字符)。
!
! Exmh
!
exmh.mimeUCharsets: utf-8
exmh.mime_utf-8_registry: iso10646
exmh.mime_utf-8_encoding: 1
exmh.mime_utf-8_plain_families: fixed
exmh.mime_utf-8_fixed_families: fixed
exmh.mime_utf-8_proportional_families: fixed
exmh.mime_utf-8_title_families: fixed
groff 1.16.1,传统的 Unix 文本处理系统 troff/nroff 的 GNU 实现,可以输出 UTF-8 格式的文本。只需使用 “groff -Tutf8
” 而不是 “groff -Tlatin1
” 或 “groff -Tascii
”。
teTeX 0.9(及更高版本)发行版包含 TeX 的 Unicode 改编版本,称为 Omega (http://www.gutenberg.eu.org/omega/, ftp://ftp.ens.fr/pub/tex/yannis/omega)。与 utf8-tex-0.1.tar.gz 中包含的 unicode.tex 文件一起,它使您能够使用 UTF-8 编码的源作为 TeX 的输入。目前支持数千个 Unicode 字符。
所有改变的是您运行 “omega”(而不是 “tex”)或 “lambda”(而不是 “latex”),并在源输入的开头插入以下行:
\ocp\TexUTF=inutf8
\InputTranslation currentfile \TexUTF
\input unicode
其他可能相关的链接:http://www.dante.de/projekte/nts/NTS-FAQ.html, ftp://ftp.dante.de/pub/tex/language/chinese/CJK/。
PostgreSQL 6.4 或更高版本可以使用配置选项 --with-mb=UNICODE
构建。
Borland/Inprise 的 Interbase 6.0 如果给定选项 “CHARACTER SET UNICODE_FSS”,则可以将字符串字段存储为 UTF-8 格式。
使用 http://www.flash.net/~marknu/less/less-358.tar.gz,您可以在 UTF-8 xterm 或控制台中浏览 UTF-8 编码的文本文件。确保未设置环境变量 LESSCHARSET(或将其设置为 utf-8)。如果您还设置了 LESSKEY 环境变量,还要确保它指向的文件未定义 LESSCHARSET。如有必要,请使用 `lesskey` 命令重新生成此文件,或取消设置 LESSKEY 环境变量。
Tomio Narita 的 lv-4.49.3 http://www.ff.iij4u.or.jp/~nrt/lv/ 是一个带有内置字符集转换器的文件查看器。要在 UTF-8 控制台中查看 UTF-8 文件,请使用 “lv -Au8”。但它也可以用于在 UTF-8 控制台中查看其他 CJK 编码的文件。
有一个小故障:lv 关闭 xterm 的光标,并且不再将其打开。
获取 GNU textutils-2.0 并应用补丁 textutils-2.0.diff,然后配置,将 “#define HAVE_FGETWC 1”、“#define HAVE_FPUTWC 1” 添加到 config.h。然后重建。
获取 util-linux-2.9y 软件包,配置它,然后在 defines.h 中定义 ENABLE_WIDECHAR,将 lib/widechar.h 中的 “#if 0” 更改为 “#if 1”。在 text-utils/Makefile 中,修改 CFLAGS 和 LDFLAGS,以便它们包含 libutf8 安装的目录。然后重建。
figlet 2.2 具有 UTF-8 输入的选项:“figlet -C utf8”
Li18nux 列出的应该与 UTF-8 互操作的命令和实用程序如下。需要在此处添加有用的信息;我只是还没有来得及 :-)
截至 glibc-2.2,正则表达式仅适用于 8 位字符。在 UTF-8 区域设置中,包含非 ASCII 字符或希望使用 “.” 匹配单个多字节字符的正则表达式不起作用。这会影响下面列出的所有命令和实用程序。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 at-3.1.8:at.c 中 isalnum 的两个用法无效,应替换为 quotearg.c 的用法或 shell 元字符的(固定)列表的排除列表。at.c 和 atd.c 中 %8s 的两个用法无效,应变为任意长度。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 fileutils-4.0u:正常。
截至 fileutils-4.0u:正常。
截至 fileutils-4.0u:正常。
截至 sh-utils-2.0i:正常。
截至 textutils-2.0e:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 fileutils-4.0u:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 sh-utils-2.0i:正常。
截至 fileutils-4.0u:conv=lcase, conv=ucase 选项无法正常工作。
截至 fileutils-4.0u:正常。
截至 diffutils-2.7.2:因此,--side-by-side 模式无法正确计算列宽。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
截至 fileutils-4.0u:正常。
截至 sh-utils-2.0i:正常。
尚无可用信息。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
尚无可用信息。
截至 sh-utils-2.0i:运算符 “match”、“substr”、“index”、“length” 无法正常工作。
截至 sh-utils-2.0i:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 findutils-4.1.6:“-iregex” 无法正常工作;这需要在函数 find/parser.c:insert_regex 中进行修复。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
gzip-1.3 具有 UTF-8 功能,但它仅使用 ASCII 字符集中的英语消息。正确的国际化需要:使用 gettext。调用 setlocale。在函数 check_ofname (file gzip.c) 中,使用 GNU text/sh/fileutils 中的函数 rpmatch,而不是询问 “y” 或 “n”。gzip.c:852 中 strlen 的用法是错误的,需要使用函数 mbswidth。
尚无可用信息。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无完整信息。
尚无可用信息。
截至 fileutils-4.0u:正常。
截至 glibc-2.2:正常。
截至 glibc-2.2:正常。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 fileutils-4.0y:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 fileutils-4.0u:正常。
截至 fileutils-4.0u:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 fileutils-4.0u:正常。
尚无可用信息。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 fileutils-4.0u:正常。
截至 fileutils-4.0u:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 sh-utils-2.0.11:正常。
尚无可用信息。
截至 textutils-2.0e:正常。
尚无可用信息。
尚无可用信息。
截至 tar-1.13.17:正常,如果用户名和组名始终为 ASCII。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
截至 fileutils-4.0u:正常。
尚无可用信息。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 sh-utils-2.0i:正常。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
尚无可用信息。
截至 textutils-2.0.8:正常。
截至 sh-utils-2.0i:正常。
尚无可用信息。
尚无可用信息。
截至 findutils-4.1.5:该程序使用 strstr;已向维护者提交了一个补丁。
尚无可用信息。
尚无可用信息。
尚无可用信息。
Owen Taylor 目前正在开发一个用于渲染多语言文本的库,名为 pango。http://www.labs.redhat.com/~otaylor/pango/, http://www.pango.org/。