当前位置: 技术问答>linux和unix
RedHat中xml文件无法显示中文
来源: 互联网 发布时间:2016-11-04
本文导语: 程序最初是在windows下运行的,其中一个操作室,根据id 输出xml文件中的相应部分。可是让源码移至到Linux下后(RedHat版),重新编译,生成可执行程序。在执行时发现,值输出了XML文件中的英文部分,只要涉及到中...
程序最初是在windows下运行的,其中一个操作室,根据id 输出xml文件中的相应部分。可是让源码移至到Linux下后(RedHat版),重新编译,生成可执行程序。在执行时发现,值输出了XML文件中的英文部分,只要涉及到中文的行都没输出。例如:
***********************************************************************n
* 修改指定数据库属性 *n
***********************************************************************n
: 特征格式,值为:mntfmt_xgw, mntfmt_lcw, mntfmt_mixn
: n
在windows下的输出结果是:
***********************************************************************
* 修改指定数据库属性 *
***********************************************************************
: 特征格式,值为:mntfmt_xgw, mntfmt_lcw, mntfmt_mix
:
在Linux下的输出结果是
***********************************************************************
***********************************************************************
:
总结就是,只要涉及到中文的所在行,无论中英文,都不显示。
想请问下,这到底是为什么,以及如何解决,谢谢大家。
***********************************************************************n
* 修改指定数据库属性 *n
***********************************************************************n
: 特征格式,值为:mntfmt_xgw, mntfmt_lcw, mntfmt_mixn
: n
在windows下的输出结果是:
***********************************************************************
* 修改指定数据库属性 *
***********************************************************************
: 特征格式,值为:mntfmt_xgw, mntfmt_lcw, mntfmt_mix
:
在Linux下的输出结果是
***********************************************************************
***********************************************************************
:
总结就是,只要涉及到中文的所在行,无论中英文,都不显示。
想请问下,这到底是为什么,以及如何解决,谢谢大家。
|
用iconv命令转换一下看看能不能把xml文件正常输出,可以看到中文。
你的xml文件是直接从windows下面复制过来的吧,我猜应该是CP936。
你上面的回复说明你用iconv命令是能正常看到你的xml文件内容的。
所以问题就定位在你的应用程序上面了。你的应用程序代码中并没有支持多字节编码。你的代码是什么语言写的,如果是C的话试着用setlocale设置一下语言试试,如果是别的语言,可以在google上搜索一下那个语言对多字节编码和unicode的支持。
你的xml文件是直接从windows下面复制过来的吧,我猜应该是CP936。
你上面的回复说明你用iconv命令是能正常看到你的xml文件内容的。
所以问题就定位在你的应用程序上面了。你的应用程序代码中并没有支持多字节编码。你的代码是什么语言写的,如果是C的话试着用setlocale设置一下语言试试,如果是别的语言,可以在google上搜索一下那个语言对多字节编码和unicode的支持。