Tomcat下byte[]转String出现乱码问题
来源:互联网 发布:网络女主播直播间 编辑:程序博客网 时间:2024/06/03 15:24
Java Web课程老师给我们发了一份实验指导书,上面有一个示例程序是这样的:
<%@ page contentType="text/html;charset=gb2312"%><%!public String codeToString(String str){//处理中文字符串的函数 String s=str; try { byte tempB[]=s.getBytes("ISO-8859-1"); s=new String(tempB); return s;}catch(Exception e){ return s;}}%><html><head><title>接收新用户注册</title></head><body>这是新用户注册所提交的数据:<br>用户名是:<%=codeToString(request.getParameter("username"))%><br>密码是:<%=codeToString(request.getParameter("userpassword"))%><br>性别是:<%=codeToString(request.getParameter("sex"))%><br>出生年月是:<%=request.getParameter("year")+request.getParameter("month")+request.getParameter("day")%><br>电子邮箱是:<%=request.getParameter("email")%><br>家庭住址是:<%=codeToString(request.getParameter("address"))%><br></body></html>
就是接收表单信息,然后显示。但是在页面显示的时候,参数是中文的部分出现了乱码。
然后上网查了原因,在这里总结一下:
我们知道:tomcat默认的编码格式是ISO-8859-1,是一种不兼容中文的编码格式。
我们使用request.getParameter()方法接收表单信息或是数据库的信息的时候属于一种后台操作,所以我们的时候也要使用ISO-8859-1的格式去接收(如果是其他编码格式,则会出现乱码,如果省略后面的编码格式,编码格式为操作系统默认的编码格式),所以byte tempB[]=s.getBytes("ISO-8859-1");
这一句并没有错,错就错在s=new String(tempB);
没有显式指明转换的编码格式,而是使用默认的编码格式,即操作系统默认的编码格式,服务器系统一般为英文系统,所以系统默认的编码格式是无法解析中文的。把它改为s=new String(tempB,"utf-8")
即可。
阅读全文
0 0
- Tomcat下byte[]转String出现乱码问题
- 压缩后再解压缩,byte转string出现乱码问题
- tomcat在linux下出现乱码问题
- Tomcat,出现乱码问题
- tomcat出现乱码问题
- Tomcat,出现乱码问题
- byte[]转String,编码与乱码问题,以及Base64编码
- byte[] 与String 转换出乱码问题
- Tomcat出现中文乱码问题
- String字符串转换为byte byte转换为String字符串 汉字乱码问题
- JSP页面提交后中文字符出现乱码-tomcat下中文乱码问题
- centos下tomcat乱码问题
- tomcat下,超链接下载出现乱码页面
- 解决Tomcat出现中文乱码问题
- Tomcat部署jsp,出现乱码问题
- tomcat post 提交时出现乱码问题
- Ubuntu下使用Tomcat搭建网站出现中文乱码的问题
- Java中byte[]转String问题
- iOS开发---内存管理/引用计数器1--引用计数器思考方式
- 【小型系统】简单的刷票系统(突破IP限制进行投票)
- Mac SVN
- 所以你根本不想成为一名程序员?
- layer弹窗样式的修改
- Tomcat下byte[]转String出现乱码问题
- open打开的新窗口给原窗口赋值
- 运维是干嘛的 ?!
- 专访 | 千寻位置CEO陈金培:高精定位亟需杀手级应用
- 亚马逊推新Kindle 可边泡澡边阅读 阿里AI实验室推语音开放平台
- 云栖 | 阿里云3大核心板块落成:狠抓IoT、推出云小蜜、一大波新应用来袭
- 重磅:阿里雪铁龙合作汽车明年推出 深度对话斑马智行CEO施雪松
- 对话|索尼音频高层:重点布局耳机、回音壁、智能音箱三大领域
- 搜狗递交赴美IPO申请;特斯拉召回万辆ModelX