聚能聊

程序员永远无法避免的话题---乱码的处理!

24个月前 26回答 27732关注

为什么说乱码是中国程序员无法避免的话题呢?这个首先要从编码机制上说起,大家都是中文和英文的编码格式不是一样,解码也是不一样的!如果中国的程序员不会遇到乱码,那么只有使用汉语编程。

screenshot

比如java的乱码有很多种情况:

1、关于配置Tomcat的URIEncoding

问题:程序需要发送http GET请求到服务器,请求的参数中包含了中文字符。程序中参数为UTF-8格式,且经过了UTF-8 URL编码再发送。使用的tomcat服务器,但服务器端后台程序中取到的参数的中文是乱码。

解决方法:修改Tomcat的Server.xml,在Connector标签中加上URLEncoding参数。

maxSpareThreads="75" enableLookups="false" redirectPort="8443"
acceptCount="100" debug="99" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="UTF-8"/>

2、http请求乱码问题

post请求出现乱码:

解决方法:在servlet页面添加response.setCharcacterEncoding("utf-8")

get请求出现乱码:

解决方法:在后台获取字符串后对编码进行转化,如常见的编码ISO-8859-1,代码如下

String name = request.getParameter("name");
name=new String(name.getBytes("ISO-8859-1","utf-8"))          

3、Html中文乱码

问题:htmll出现乱码的主要原因是html源代码内中文字内容与html编码不同造成。网页的编码是gbk,而中文的是utf-8;

解决方法:在页面顶部......中加上以下代码

4、jsp页面出现乱码

问题:开发人员开发jsp应该拥有良好的编码意识,jsp顶部应该首先明确编码是什么?

解决方法:在页面顶部加上以下语句

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

大家来说说:
你在编程时候遇到过乱码吗?
遇到乱码你是如何解决问题的?
快分享一下您的宝贵经验!

专家已赏出0个礼品,剩余7个可抢

活动规则

阿里云代金券5个
福禄寿淘公仔1个
多功能工具箱1个
点击加载更多