- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AIX语言包与编码转换
AIX上语言包及编码转换
查看已经安装的语言包:
# locale -a
C
POSIX
ZH_CN
ZH_CN.UTF-8
en_US
en_US.8859-15
en_US.ISO8859-1
zh_CN
zh_CN.IBM-eucCN
查看当前的设置:
# locale
LANG=zh_CN
LC_COLLATE= "zh_CN "
LC_CTYPE= "zh_CN "
LC_MONETARY= "zh_CN "
LC_NUMERIC= "zh_CN "
LC_TIME= "zh_CN "
LC_MESSAGES=zh_CN
LC_ALL=zh_CN
修改设置:
# export LC_ALL=ZH_CN.UTF-8
查看修改后的设置:
# locale
LANG=zh_CN
LC_COLLATE= "ZH_CN.UTF-8 "
LC_CTYPE= "ZH_CN.UTF-8 "
LC_MONETARY= "ZH_CN.UTF-8 "
LC_NUMERIC= "ZH_CN.UTF-8 "
LC_TIME= "ZH_CN.UTF-8 "
LC_MESSAGES= "ZH_CN.UTF-8 "
LC_ALL=ZH_CN.UTF-8
export LC_ALL=ZH_CN.UTF-8
export LANG=ZH_CN.UTF-8
结果是一样的。因为LC_ALL是优先级最高的,改不改LANG没有什么影响
AIX上安装语言包
1. 将AIX系统盘的第一张光盘放入光驱;
2. 运行命令:
smitty
--> System Environments
--> Manage Languange Environment
--> Add Addinational Languange Environments
在随后显示的菜单中将光标分别移到以下字段,按F4进行选择(选择 .... (zh_CN)相应语言):
CULTURAL Convention to Install
LANGUAGE translation to install
在光驱中放入介质,回车就可以了。
LANGUAGE translation to install
GB18030 S-Chinese (GB18030) [Zh_CN]
UTF-8 Chinese (Simplified UTF) [ZH_CN]
编码转换例程:
#include <iconv.h>
#include <errno.h>
#include <stdio.h>
#include <iostream>
using namespace std;
#define MAXBUFLEN 512
// 代码转换操作类
class CodeConverter {
private:
iconv_t cd;
public:
// 构造函数
CodeConverter(const char *from_charset,const char *to_charset) {
cd = iconv_open(to_charset,from_charset);
}
// 析构函数
~CodeConverter() {
iconv_close(cd);
}
// 缓冲区数据转换输出
int Convert(char *inbuf,int inlen,char *outbuf,int outlen) {
int lri_ret;
char **pin = &inbuf;
char **pout = &outbuf;
memset(outbuf,0,outlen);
return iconv(cd,pin,(size_t *)&inlen,pout,(size_t *)&outlen);
}
// 文件转换输出
int ConvertFile(char *infile, char *outfile) {
FILE *rfp;
FILE *wfp;
char inBuf[MAXBUFLEN];
char outBuf[MAXBUFLEN*4];
文档评论(0)