(1)servlet如何输出中文? a,乱码问题产生的原因 默认情况下,out.println会使用"iso-8859-1"来进行编码。 b,解决方式 response.setContentType("text/html;charset=utf-8"); 注意,编码格式只要支持中文即可,比如,还可以设置为gbk。 这行代码的作用有两个: 作用1:生成一个消息头(content-type),告诉浏览器,服务器返回的数据类型和编码格式 作用2:也设置了out.println在输出时使用的编码格式。 (2)表单有中文参数,如何处理? a,乱码问题产生的原因 当表单提交时,浏览器会对表单中的中文使用浏览器打开表单所在的页面时的编码格式进行编码。 b,解决方式: 方式一: step1,要保证表单所在的页面按照指定的编码格式打开。 <meta http-equiv="content-type" content="text/html;charset=utf-8"> step2,让服务器按照指定的编码格式进行解码。 request.setCharacterEncoding("utf-8"); 只对post请求有效。 方式二: step1,同上。 step2, name = new String(name.getBytes("iso-8859-1"),"utf-8"); 常识: a,java语言在内存当中以unicode编码格式(字符集)来保存一个字符。 b,编码:将unicode编码格式对应的字节数组转换成某种本地编码格式(gbk,utf-8,gb2312)对应的字节数组。 c,解码:将某种本地编码格式对应的字节数组转换成unicode编码格式对应的字节数组。 |
|