标题: uClinux下编写的cgi程序能输出中文吗
soqsoq
新生入学
Rank: 1
注册用户



UID 183257
精华 0
积分 0(积分有什么用?)
帖子 1
阅读权限 10
注册 2007-3-7
状态 离线
发表于 2007-4-26 17:53  资料  个人空间  短消息  加为好友 
uClinux下编写的cgi程序能输出中文吗

我用了uclinux下的boa服务器,写了些cgi程序,用printf()能输出英文显示在windows浏览器上,但中文无法显示,怎么能显示中文啊?
可以把静态页面的中文显示出来,但不能把cgi程序中的中文显示出来,
main()
{
input inputs[10];
int len;
int ch;
FILE *fp;
int s[100];
char p[100];
char accounts[20],password[20];
int i=0,j=0,k=0;
printf("Content-type:text/html\n\n");
len=atoi(getenv("CONTENT_LENGTH"));
for(i=0;len&&(!feof(stdin));i++)
{
inputs.val=ReadStdin(stdin,'&',&len);
AddToSpace(inputs.val);
Convert(inputs.val);
inputs.name=ReadData(inputs.val,'=');
}
fp=fopen("/tmp/register","w+");
if(fp==NULL)
exit(1);
if(strcmp(inputs[1].val,inputs[2].val)==0)
{
fp=fopen("/tmp/register","w+");
fwrite(inputs[0].val,strlen(inputs[0].val),1,fp);
fputc('=',fp);
fwrite(inputs[1].val,strlen(inputs[1].val),1,fp);
fclose(fp);
fp=fopen("/home/web/html/change_success.html","r");
//chang_success.html中的中文能显示出来
if(fp==NULL)
exit(1);
while(!feof(fp))
{
ch=fgetc(fp);
putchar(ch);
}
fclose(fp);
}
else
{
printf("出了问题");//这里的中文无法输出
}
}
显示的是Invalid multibyte format string,
不知道怎么解决????

顶部
prince1234
新生入学
Rank: 1
注册用户



UID 171904
精华 0
积分 0(积分有什么用?)
帖子 5
阅读权限 10
注册 2006-11-2
状态 离线
发表于 2007-6-5 23:39  资料  个人空间  短消息  加为好友 
帮顶,我也是遇见这个问题了

顶部
tojeff
新生入学
Rank: 1
注册用户



UID 120034
精华 0
积分 0(积分有什么用?)
帖子 2
阅读权限 10
注册 2005-5-2
状态 离线
发表于 2007-6-24 11:51  资料  个人空间  短消息  加为好友 
printf("charset:gb2312\n");

顶部
白石
新生入学
Rank: 1



UID 202030
精华 0
积分 10(积分有什么用?)
帖子 1
阅读权限 10
注册 2007-7-10
状态 离线
发表于 2007-7-10 11:42  资料  个人空间  短消息  加为好友 
中文的显示其实是html的功能,在html的head信息中增加content="text/html; charset=gb2312"

顶部
 



当前时区 GMT+8, 现在时间是 2008-5-23 03:57

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.127621 second(s), 5 queries

清除 Cookies - 联系我们 - Linux伊甸园 - Archiver - WAP