您的位置:首页 > Web前端 > JavaScript

JSP页面UTF-8格式中文字符串乱码问题解决方法

2015-02-02 14:06 991 查看
JSP页面使用utf8格式保存中文字符串到文件或进行socket传送接收数据时,常常会出现乱码。这里给出了一个解决方法,实践检验行之有效。

0) 页面属性设置

<%@ page import="java.util.*,java.text.*,java.io.*,java.net.*" %>

<%@ page language="java" contentType="text/html; charset=UTF-8"%>

<%@ page pageEncoding="UTF-8" %>

<HTML>

<head>

<META http-equiv="Content-Type" content="text/html; charset=UTF-8">

</head>

<body>

......

</body>

</HTML>

1)保存至文件

指定UTF-8编码格式。

String str = "中文字符串";

FileOutputStream fileout = new FileOutputStream("/home/songchao/message.txt");

OutputStreamWriter osw=new OutputStreamWriter(fileout, "UTF-8");

osw.write(str);

osw.close();

2)通过socket传送

//获取Socket的输出流,用来发送数据到服务端,使用UTF-8编码格式。

String sentmsg = "中文字符串";

Socket socket = new Socket("127.0.0.1", 1024);

socket.setSoTimeout(10000);

PrintWriter writer = new PrintWriter(new OutputStreamWriter(

socket.getOutputStream(), "UTF-8"), true);

writer.println(sentmsg);

3)通过socket接收

//获取Socket的输入流,用来接收从服务端发送过来的数据,使用UTF-8编码

BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));

String recvmsg= reader.readLine();

4) 解析

Tomcat默认的编码格式是iso-8859-1,不能表示中文字符。这里我们使用UTF-8字符集表示中文。

“page ”指示该页面中代码的字符编码是UTF-8。“head”指示浏览器使用UTF-8格式进行字符显示。

Tomcat进行文件和网络传输操作时,默认使用的编码格式也是iso-8859-1,这里我们指定传输时的编码格式为“UTF-8”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: