JavaScript is required to for searching.
跳过导航链接
退出打印视图
国际语言环境指南     Oracle Solaris 11 Information Library (简体中文)
PDF
search filter icon
search icon

文档信息

前言

1.  介绍

2.  Unicode 和 UTF-8 语言环境支持

3.  使用语言和语言环境

4.  桌面键盘首选项和输入法

5.  配置字体

6.  高级主题

代码集转换

iconv 实用程序

International Components for Unicode

uconv 实用程序

文件检查器 (fsexam)

自动编码查找器 (auto_ef)

国际化域名支持

GNU IDN 库

JPNIC idnkit

打印增强功能

mp 实用程序

与其他平台的互操作性

NFS 服务器注意事项

文件系统注意事项

包含非 ASCII 文件名的归档

创建定制语言环境

基于系统语言环境创建新的语言环境

如何创建定制语言环境

从头开始创建语言环境

A.  可用语言环境

索引

代码集转换

对代码集转换或字符集 (charset) 转换的支持是操作系统的重要部分,因为大多数应用程序都依赖于此功能才能正常运行。

Oracle Solaris 的当前发行版还包括 International Components for Unicode (ICU),后者是广泛用于 Unicode 支持、软件国际化和软件全球化的库和工具。

Oracle Solaris 11 包括用于代码集转换的各种工具和库。核心代码集转换实用程序 iconv 基于 Oracle Solaris libc 中的 iconv 库而构建。

iconv 实用程序

iconv(1) 命令行实用程序可将字符或字符序列从一种代码集转换为另一种代码集。它支持各种代码集。由于各平台之间代码集名称通常会不同,借助 iconv 的别名机制,许多代码集支持使用多个名称。运行以下命令可获取系统中当前可用的代码集列表:

$ /usr/bin/iconv -l

由于多个软件包有 iconv 模块,因此可以通过安装其他软件包来扩展缺省列表。缺省安装包括 system/library/iconv/utf-8 软件包,后者含有 iconv 模块的基本集,用于在 UTF-8 与其他 Unicode 代码集和所选定其他代码集之间进行转换。软件包管理器的系统/国际化类别中提供了其他软件包,也可以使用 system/library/iconv/* 名称模式通过 pkg(1) 命令来安装这些软件包。

iconv —f 选项定义源代码集,-t 选项定义目标代码集。可以使用 iconv 按如下所示将文件或标准输入转换为标准输出:

$ /usr/bin/iconv -f eucJP -t UTF-8 file.txt

此示例将 file.txt 文件名从 eucJP 代码集(针对日文的扩展 UNIX 代码包格式)转换为 UTF-8 代码集,并将结果写入标准输出。

在 Oracle Solaris 11 中,iconv 已扩展为包括多种标志,这些标志用于在以下特殊情况下修改转换行为:

此外,也可在命令行上使用 //ILLEGAL_DISCARD//NON_IDENTICAL_DISCARD//IGNORE//TRANSLIT 等标志。有关更多信息,请参见 iconv_open(3C) 手册页。


注 - Oracle Solaris 中的一些 iconv 模块只能实现 iconv_open(3C) 手册页中介绍的部分标志。


有关 iconv 的更多信息,请参见 iconv(1)iconv(3C)iconv_open(3C) 和相关手册页。

International Components for Unicode

Oracle Solaris 11 将 International Components for Unicode (ICU) C/C++ 库添加到了可用接口中。ICU 是成熟的、广泛使用的库集,为软件应用程序提供 Unicode 和全球化支持。ICU 是可移植的,在所有平台上以及在 C/C++ 与 Java 软件之间为应用程序提供相同结果。

ICU 提供的一些服务包括:

Oracle Solaris 11 中的 ICU 划分为两个软件包:一个是 library/icu,它仅包含各个库;另一个是 developer/icu,它提供头文件和多个实用程序,例如 uconv(1)。

有关更多信息,请参见项目的 Web 站点 http://site.icu-project.orglibicui18n(3LIB)、libicuio(3LIB)、libicudata (3LIB)、libicule(3LIB)、libiculx(3LIB)、libicutu (3LIB) 和 libicuuc(3LIB) 手册页说明如何使用 Oracle Solaris 中的库。

uconv 实用程序

iconv(1) 之外,属于 International Components for Unicode (ICU) 工具集的 uconv(1) 命令也可用于将文本从一种编码转换为另一种编码。uconv 支持 229 种编码以及超过 1000 个别名。

该工具属于缺省情况下未安装的 developer/icu 软件包。要安装该工具,请发出以下命令:

# pkg install developer/icu

要将采用 cp-1252 编码的文本转换为 UTF-8 编码,可键入:

$ uconv -f cp1252 -t UTF-8 -o file_in_utf8.txt file_in_cp1252_encoding.txt

uconv 的另一种功能是音译-将字母从一种书写体转换为另一种书写体,而不翻译基础单词。下面的示例将一段希腊文字转换为拉丁字符:

$ echo “Σολαρις”| uconv -x Greek-Latin -f utf-8 -t utf-8
Solaris

有关此工具的功能的更多信息,请参见 uconv(1) 手册页。

文件检查器 (fsexam)

通过文件编码检查器 fsexam 实用程序,可以将文件名或纯文本文件的内容从传统字符编码转换为 UTF-8 编码。fsexam 实用程序包括以下新功能:

要将 fsexam 添加到系统中,请安装 storage/fsexam 软件包。有关更多信息,请参见 fsexam (1) 和 fsexam(4) 手册页。

自动编码查找器 (auto_ef)

Oracle Solaris 包含 auto_ef(1),后者是用于确定文件编码的一个命令行实用程序。auto_ef 使用 iconv 代码转换来判断编码,从而确定对文件进行的特定代码转换是否成功。此外,它还对文件中显示的字符序列执行频率分析。例如,

$ auto_ef test_file
eucJP

使用 -a 选项,将显示给定文件的所有可能编码:

$ auto_ef -a test_file
eucJP           0.89
zh_CN.euc       0.40
ko_KR.euc       0.01

要将 auto_ef 添加到系统中,请安装 text/auto_ef 软件包。有关更多信息,请参见 auto_ef(1) 手册页。