在 Solaris 上查看中文文件而不更改区域设置

在 Solaris 上查看中文文件而不更改区域设置

使用案例:我有一个客户端服务器设置,其中服务器是 Solaris 计算机,客户端可以是任何 Windows、Linux 等。客户端启动时需要根据客户端的区域设置创建一个资源包对象,该对象又获取在服务器上维护的中文属性文件(出于某些设计原因)。

要求:我需要在服务器上维护中文文件(utf-8编码)而不将服务器的区域设置更改为中文。 (同样,也许稍后,我们可能会引入对其他语言的支持。所以实际上我们不能让服务器同时指向多个语言环境。希望我在这里表达了我的观点!)

问题:我在Windows机器上创建中文属性文件,然后将其FTP到Solaris机器上并尝试使用VI编辑器查看它。它被编码为某种默认的 Solaris 编码,如下所示:

\217\251\300disk-redundancy.mirrors.label=\207\376\251\207\251\226\207\242\346\206\304\272\205\326\277\207\326\251\ 205\273\362 LoginWindow.login_label=\207\326\251\205\273\362 ID:

聚苯乙烯如上所述,更改服务器上的区域设置不能成为解决方案的一部分。

供参考:LANG= LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_ALL=

笔记: 1. 与上面 VI 中描述的结果相比,cat 显示了不同的结果。请找到以下 cat 的输出:

▒▒▒disk-redundancy.mirrors.label=▒▒▒▒▒▒▒▒▒ĺ▒ֿ▒֩▒▒▒ LoginWindow.login_label=▒֩▒▒▒ ID:

我尝试以编程方式访问文件而不打开任何编辑器,我认为这表明问题不在于编辑器。

java 调试工具 ?? ID:

  1. Solaris 上的编码查找工具也返回 UTF-8。

auto_ef -a 中文.properties

UTF-8 1.00

  1. 我尝试将此文件下载回Windows并在编辑器中查看它,并且可以成功地将其查看为中文文件。

disk-redundancy.mirrors.label=系统监控器登录

disk-redundancy.mirrors.value=登录 ID:

答案1

“C”语言环境仅处理 ASCII 文本。您必须使用 UTF-8 语言环境来处理 UTF-8 文本 - 您不需要更改服务器范围的设置,只需更改运行编辑器的会话的环境变量即可。

相关内容