Encoding 在Solaris上以UTF-8编码的中文格式查看文件,而无需将区域设置更改为中文

Encoding 在Solaris上以UTF-8编码的中文格式查看文件,而无需将区域设置更改为中文,encoding,utf-8,Encoding,Utf 8,用例: 我有一个客户机-服务器设置,其中服务器是Solaris机器,客户机可以是任何windows、linux等。客户机在启动时需要根据客户机的区域设置创建一个资源包对象,该对象反过来获取服务器上维护的中文属性文件(出于某些设计原因) 要求: 我需要在服务器上维护中文文件(utf-8编码),而不将服务器的区域设置更改为中文。(类似地,可能是以后,我们可能会引入对其他语言的支持。因此实际上,我们不能让服务器同时指向多个区域设置。希望我在这里阐述了我的观点!) 问题: 我在windows机器上创建了

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

要求: 我需要在服务器上维护中文文件(utf-8编码),而不将服务器的区域设置更改为中文。(类似地,可能是以后,我们可能会引入对其他语言的支持。因此实际上,我们不能让服务器同时指向多个区域设置。希望我在这里阐述了我的观点!)

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

\217\251\300磁盘冗余.镜像.标签=\207\376\251\207\251\226\207\242\346\206\304\272\205\326\277\207\326\251\205\273\362 LoginWindow.login\u label=\207\326\251\205\273\362 Id:

p.S.如上所述,更改服务器上的区域设置不能作为解决方案的一部分

供参考:

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的以下输出:

▒▒▒磁盘冗余.mirrors.label=▒▒▒▒▒▒▒▒▒ĺ▒ֿ▒֩▒▒▒ LoginWindow.login\u标签=▒֩▒▒▒ 身份证:

我试图在不打开任何编辑器的情况下以编程方式访问该文件,我认为这表明问题不在于编辑器

java调试工具??身份证:

  • solaris上的编码查找工具也返回UTF-8
  • auto_ef-a chinese.properties

    UTF-8 1.00

  • 我试着将这个文件下载回windows并在编辑器中查看,并且可以成功地将其作为中文文件查看
  • 磁盘冗余.mirrors.label=系统监控器登录


    磁盘冗余.mirrors.value=登录 Id:

    听起来这主要是一个与vi相关的问题!?文件的实际内容是否已更改,或者vi无法显示/解释?与vi中的上述内容相比,cat显示的结果不同。请查看以下cat输出:▒▒▒磁盘冗余.mirrors.label=▒▒▒▒▒▒▒▒▒ĺ▒ֿ▒֩▒▒▒ LoginWindow.login\u标签=▒֩▒▒▒ Id:为了回答你的问题,我遵循以下步骤:1。我把文件上传到服务器上。2.需要将权限和所有权分别更改为444和root。3.试图使用资源包对象打印属性文件中定义的键的值,即未使用任何编辑器打开文件。java调试工具??Id:我在上面的声明中的意思是,我试图以编程方式访问文件,而不打开任何编辑器,我认为这表明问题不在编辑器上。听起来这主要是一个与vi相关的问题!?文件的实际内容是否已更改,或者vi无法显示/解释?与vi中的上述内容相比,cat显示的结果不同。请查看以下cat输出:▒▒▒磁盘冗余.mirrors.label=▒▒▒▒▒▒▒▒▒ĺ▒ֿ▒֩▒▒▒ LoginWindow.login\u标签=▒֩▒▒▒ Id:为了回答你的问题,我遵循以下步骤:1。我把文件上传到服务器上。2.需要将权限和所有权分别更改为444和root。3.试图使用资源包对象打印属性文件中定义的键的值,即未使用任何编辑器打开文件。java调试工具??Id:我在上面的语句中的意思是,我试图以编程方式访问该文件,而不打开任何编辑器,我认为这表明问题不在于编辑器。