设为首页 收藏本站
查看: 1038|回复: 0

[经验分享] IBM Portal的web剪切出现乱码的解决办法!

[复制链接]

尚未签到

发表于 2017-5-26 11:13:15 | 显示全部楼层 |阅读模式
  文档出处:http://www.blogjava.net/badboyryan/archive/2007/01/05/91997.html

同事在用IBM Portal的WEB剪切的时候,预览效果的时候发现页面全部是乱码why?

其实这个问题是编码的问题,理解了jsp里面的编码是解决问题的关键,看看这段代码:
<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="GB18030"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<tiles:insert page="/common/tiles/level2pageTiles.jsp" flush="true"> 
      <tiles:put name="header" value="/daohang/shouye/display_l_1_indexHeader.jsp" />
      <tiles:put name="top" value="/common/jsppage/top.jsp" />
      <tiles:put name="middle" value="/daohang/shouye/display_l_1_indexMiddle.jsp"/>
      <%-- 带计数器的为/common/jsppage/bottom2.jsp --%>
      <tiles:put name="bottom" value="/common/jsppage/bottom.jsp"/>
</tiles:insert>

我们看到:pageEncoding="GB18030"的作用是表示了该JSP文件使用的编码方式,这个属性主要是用于应用服务器在解析JSP文件,并转换为servlet时使用;
contentType="text/html; charset=gb2312" 的作用是:表示该网页采用GB2312国标码,这也是简体中文标准版本,如果不加,部分浏览器会自动选择编码,从而导致乱码出现,所以最好还是要加上;
<meta   http-equiv=″Content-Type″   content=″text/html;   charset=gb2312″>        
     <!--网页内容类型,TXT或HTML格式,编码方式为GB2312   -->      
因为JSP要经过两次编码, 第一阶段会用到pageEncoding, 第二阶段会用 utf-8 至utf-8, 第三阶段就是由web容器出來的网页, 用的是contentType.

阶段一是 JSPC的 JSP至JAVA(.java)原码的"翻译", 它会根据pageEncoding 的设定读取JSP. 结果是 由指定的 pageEncoding(utf-8,Big5,gb2312)的JSP 翻译成统一的utf-8 JAVA原码(.java). 如果pageEncoding设定错了, 或沒设定(预设ISO8859-1), 出来的 在这个阶段就已是中文乱码.
阶段二是由 JAVAC的JAVA原码至JAVA BYTECODE的编译. 不论JSP的编写时是用(utf-8,Big5,gb2312),经过阶段一的结果全都是utf-8的ENCODING的JAVA原码.
JAVAC用 utf-8的ENCODING读取AVA原码, 编译成字串是 utf-8 ENCODING的二进制码(.class). 這这是 JAVA VIRTUAL MACNHINE 对常数字串在 二进制码(JAVA BYTECODE)內表单的规范.
阶段三是TOMCAT(或其的application container)载入和执行 階段二得来的JAVA二进制码, 输出的结果( 也就是BROWSER(客戶端)) 見到的. 这时一早隐藏在階段一和二的参数contentType, 就发挥了功效.
Portal WEB剪切出现乱码是因为原始剪切源的原因而引起的需要注意在页面里面把编码方式写全、写对基本就没有问题了,还有注意如果出现?说明是在字符集中找不到这个字符就是浏览器解析不了,比如&nbsp;解决的办法把他替换为全角的空格;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-381311-1-1.html 上篇帖子: 从为IBM选拔实习生中学到的经验 下篇帖子: 学习IBM总经理信奉的“野鸭精神”
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表