网页显示乱码分析(包括如何修改浏览器语言)

显示方框通常是因为手机端没有对应字库;而显示乱码通常是由于浏览器采用的解码方式与网页内容采用的编码方式不匹配,出现这些现象,主要有以下几方面原因: 
1.手机不支持相关字库 
 如用只支持英文的手机访问中文网站,网页中的中文字符会显示为方框,可用对比机访问相同网站,得知网站是什么语言,并在手机中加入对应字库即可。 
2.浏览器语言设置不正确(这类情况最为普遍) 
 引用代码中注释如下:Most of the operator proxies and web servers will check the request header,"Accept-Language" to determine the natural language of the response,We should suggest our customers to define the set of natural languages that are preferred/supported by the handset in bra_prof.c. 即应根据手机支持的语言或字库来配置浏览器能接受的语言,否则server可能传回手机不支持的语言,这时网页字符可能显示方框或乱码,因此请务必根据手机支持的语言(或字库)情况,配置浏览器语言。如: 
#define BRA_CFG_ACCEPT_LANGUAGE_HEADER \ 
 "en," \ 
 "zh-TW" \ 
 "zh " 
以上设置表示,当前浏览器支持英语(en),繁体中文(zh-TW),简体中文(zh),更多语言代码可参考如下链接: 
http://www.comsharp.com/GetKnowledge.aspxActivePageMenuName=pMultiCulture&KnowledgeID=92&PrintFriendly=true 
【注】设置Browser V02的accept language请参考:WAP_COMMON_CFG_ACCEPT_LANGUAGE_PREFERENCE,另外在V02上,可以通过如下方式修改函数bam_cfg_default_accept_language_header()来定位是否是因为浏览器语言设置不正确引起显示异常: 
bam_cfg_default_accept_language_header() 

#if 1 
return BAM_CFG_ACCEPT_LANGUAGE_HEADER //即这里直接返回该宏的定义 
#else 
... //注释掉该函数原有代码 
#endif 

 
3.Server/proxy返回的http header无编码信息,且网页内容采用UTF-8以外的方式编码。 
例如:某proxy返回的http header中没有携带编码信息,但实际网页内容却采用GB2312,此时Q03C Browser会采用默认的UTF-8方式(见:BRS_CFG_DEFAULT_CHARSET)解码。但由于网页内容不是UTF-8编码,此时也将显示乱码。如遇这种case(严格来说,属于网络端issue),可将BRS_CFG_DEFAULT_CHARSET修改为GB2312来满足该proxy。注意:由于BRS_CFG_DEFAULT_CHARSET会在lib中引用,如果BRS_CFG_DEFAULT_CHARSET被定义为函数形式,则客户可以自行配置该值,否则,需要release patch更新lib。 
 
4.服务器返回的网页”内容编码”与http header中携带的编码内容不一致。 
例如:http header中携带的是GB2312,但实际内容确采用UTF-8,这时浏览器按照GB2312去解码时将显示乱码(这种现象在国内的部分联通proxy上出现过),这种情况,属于server端故障,且无法在Q03C Browser上解决(Q05A浏览器可通过手动选定某解码方式来处理这种server端故障)。


5.Q03C browser不认识http header中携带的编码”别名”。 
比如:在msf_xchr_table[]中有如下item: {2025, "GB2312", "gbk,csGB2312,GB_2312-80,iso-ir-58,chinese,csISO58GB231280", msf_xchr_gb2312_to_utf8, msf_xchr_utf8_to_gb2312}, 其中红色部分为
GB2312的别名,如果http header中用其他名字,如EUC_CN(与GB2312编码一致),则浏览器会因为找不到对应的解析函数而显示乱码。这种情况可将EUC_CN加 GB2312的别名序列。 
【注】关于proxy返回给手机的网页内容请查看catcher log中MSG_ID_TCPIP_TCM_DATA_IND携带的内容,该消息会携带“charset=xxxx”这样的信息,通过该消息可得知server/proxy采用的网页编码方式;或可以通过参考“如何从catcher log中提取出http数据”这条FAQ得知server/proxy返回的HTTP和HTML内容。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当Kibana浏览器显示乱码时,可能是以下几个原因导致的。 1. 字符编码问题:Kibana使用的字符编码与浏览器不匹配。请确保Kibana的字符编码与浏览器的字符编码一致,通常都是UTF-8。 2. 数据源编码问题:如果从数据源中获取的数据本身存在编码问题,那么在Kibana中显示时就可能出现乱码。可以尝试查看数据源中数据的编码,并确保Kibana所使用的字符编码与数据源编码一致。 3. 缺少字体支持:Kibana可能无法找到适合显示特定字符的字体。在遇到乱码问题时,可以尝试安装并启用支持多种字符编码的字体。 4. Kibana配置问题:Kibana的某些配置可能导致字符无法正确解析和显示。检查并确保Kibana的配置文件中没有出现错误或冲突。 解决乱码问题的方法可以尝试以下措施: 1. 检查字符编码设置:确认Kibana和浏览器使用相同的字符编码(通常为UTF-8),并根据需要进行相关设置调整。 2. 检查数据源编码:如果数据源存在编码问题,需要修复数据源的编码错误或与之一致。 3. 安装字体:尝试安装适合显示多种字符编码的字体,并在Kibana中设置使用这些字体。 4. 更新Kibana配置:检查Kibana的配置文件,确保所有设置正确并与预期一致。 总之,解决Kibana浏览器乱码问题需要确保字符编码设置正确、数据源编码无误、字体支持完整,并排除配置问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值