中文问题
1)html文件如何包含了中文,应该添加
<meta http-equiv="content-type" content="text/html;charset=utf-8">
当然,charset也可以设置为其它支持中文的编码格式,
比如gbk。
作用:
模拟一个消息头(content-type),
告诉浏览器当前处理的是一个html文档,并且编码格式是utf-8
2)servlet如果要输出中文,应该如何处理
a,乱码问题产生的原因:
a1, out.println()默认情况下,会使用 iso-8859-1去编码。
a2, 默认情况下,服务器生成的content-type 消息头设置的编码格式是 iso-8859-1。
b, 解决方式
response.setContentType("text/html;charset=utf-8");
3)如果表单有中文参数值,如何获取?
a,乱码问题产生的原因
浏览器会使用打开表单所在的页面的编码格式 对中文参数值进行编码;
web服务器一般情况下,会使用iso-8859-1去解码。
b,解决方式
方式一:
step1, 保证表单所在的页面按照指定的编码 格式打开。
<meta http-equiv="content-type" content="text/html;charset=utf-8">
step2, request.setCharacterEncoding("utf-8");
注意: 只对post请求有效。
方式二:
name = new String( name.getBytes("iso-8859-1"), "utf-8");
关于编码的知识:
a, java语言在内存当中的所有的字符都会使用unicode编码格式来保存。
b,编码: 将内存当中以unicode编码格式保存的字节数组转换成以某种本地编码格式(gbk,utf-8)保存
的字节数组。
c,解码: 将某种本地编码格式对应的字节数组转换成 unicode编码格式对应的字节数组。