重启界面在IE浏览器下乱码

跟踪发现中文乱码在fmmgmt.c文件里,如下:

sprintf(tmpBuf, "%s","更改设置成功!<br><br>路由器正在重启.<br>在这段时间内,请不要断开电源或重启路由器.<br>");

重启界面在asp_form.c里,如下:

void OK_MSG_FW(char*msg, int c,char* ip)
{

cyg_httpd_start_chunked("html"); 
web_write_chunked("<html>\n<head>\n");
//mutil_lang_support();
web_write_chunked("<script language=JavaScript>\n");
.......
web_write_chunked("<body οnlοad=\"do_count_down();\" bgColor=\"transparent\">\n<blockquote>\n<h4>%s</h4>\n", msg);
// web_write_chunked("<P align=left><h4>Please wait <B><SPAN id=show_sec></SPAN></B>&nbsp;seconds ...</h4></P>\n");
web_write_chunked("<P align=left><h4>请等待 <B><SPAN id=show_sec></SPAN></B>&nbsp;秒 ...</h4></P>\n");
web_write_chunked("</blockquote>\n</body>\n</html>\n");
cyg_httpd_end_chunked();
}

将fmmgmt.c和asp_form.c格式设置为utf-8时,谷歌和火狐浏览器是正常的,但是在IE浏览器下是乱码

将fmmgmt.c和asp_form.c格式设置为GB2312时,谷歌和火狐浏览器下是乱码,但是在IE浏览器是正常的


对比代码发现,//mutil_lang_support();,这个函数被屏蔽了,那么取消屏蔽这个函数呢?

结果是在IE和谷歌火狐下,界面都没有乱码,但是界面加载超级慢


那么分析mutil_lang_support();这个函数吧,分别屏蔽这个函数里面的两个模块,屏蔽这一块代码后,功能变的正常:

web_write_chunked("<SCRIPT language=Javascript src=\"");
getLangInfo(1,argv_lang);
web_write_chunked("\">");
web_write_chunked("</SCRIPT>\n");

加载慢的原因就可能是getLangInfo(1,argv_lang);了,那么起作用的又是那些代码呢?

web_write_chunked("<meta http-equiv=\"Content-Type\" content=\"text/html;charset=");
getLangInfo(1,argv_char);
web_write_chunked("\">\n");

即相当于给重启界面网页定格式为UTF-8,。

这样就明了了,asp_form.c格式设置为utf-8时,但是重启界面的代码格式并未随着一起生效。

最终修改的结果就很简单了,直接在void OK_MSG_FW(char*msg, int c,char* ip)函数里加一句:

web_write_chunked("<meta http-equiv='Content-Type' content='text/html;charset=utf-8'>\n");

      其中要注意的是在web_write_chunked里,单引号和双引号的问题,印象中JS里面还用“\”表示转义

     至此问题解决。


刚开始以为做底层做驱动的,没想到最终全部要做,但弄页面其实是最多的,以为自己弄Linux,结果弄ecos,想做的和要做的区别真大。

兵来将挡,水来土掩,BUG来我修复,可是离开原厂SDK后其实什么都不是,大的BUG又修复不了,也没人可以请教。

有时候还是蛮纠结。





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值