中文系统开发的项目,放到英文系统里面,保存中文时乱码?中文系统测试是OK的 IDE对文件的文字也是有编码的如ECLIPSE项目->右键properties->text file encording 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 WINXP中文,ECLIPSE平台,JSP+SERVLET+JAVABEAN数据库SQL SERVER2000英文版现在是将项目移到在任何一台中文的系统里面,都能正常保存数据,查看数据.但移到英文系统就不能保存中文了,查看是可以显示中文的. 数据库编码的问题,在英文系统下数据库通常会采用iso8859等英语国家的字符编码请将数据库字符集改为gb2312、gbk看看 转贴供 楼主参考 3、 针对Servlet类针对Servlet,我们建议用以下方法:在编译Servlet类的源程序时,用-encoding指定编码为GBK或GB2312,且在向用户输出时的编码部分用response对象的 setContentType("text/html;charset=GBK");或gb2312来设置输出编码格式,同样在接收用户输入时,我们用 request.setCharacterEncoding("GB2312");这样无论我们的servlet类移植到什么操作系统中,只有客户端的浏览器支持中文显示,就可以正确显示。如下是一个正确的示例://HelloWorld.javapackage hello;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HelloWorld extends HttpServlet{public void init() throws ServletException { }public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{request.setCharacterEncoding("GB2312"); //设置输入编码格式response.setContentType("text/html;charset=GB2312"); //设置输出编码格式PrintWriter out = response.getWriter(); //建议使用PrintWriter输出out.println("<hr>");out.println("Hello World! This is created by Servlet!测试中文!");out.println("<hr>");}public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{request.setCharacterEncoding("GB2312"); //设置输入编码格式response.setContentType("text/html;charset=GB2312"); //设置输出编码格式String name = request.getParameter("name");String id = request.getParameter("id");if(name==null) name="";if(id==null) id="";PrintWriter out = response.getWriter(); //建议使用PrintWriter输出out.println("<hr>");out.println("你传入的中文字串是:" + name);out.println("<hr>你输入的id是:" + id);out.println("<hr>");}public void destroy() { }}请用javac -encoding gb2312 HelloWorld.java来编译此程序。测试此Servlet的程序如下所示:<%@page contentType="text/html; charset=gb2312"%><%request.setCharacterEncoding("GB2312");%><html><head><title></title><Script language="JavaScript">function Submit() {//通过URL传递中文字符串值给Servletdocument.base.action = "./HelloWorld?name=中文";document.base.method = "POST";document.base.submit();}</Script></head><body bgcolor="#FFFFFF" text="#000000" topmargin="5"><form name="base" method = "POST" target="_self"><input name="id" type="text" value="" size="30"><a href = "JavaScript:Submit()">传给Servlet</a></form></body></html>4、 JAVA程序和数据库之间为避免JAVA程序和数据库之间数据传递出现乱码现象,我们建议采用以下最优方法来处理:1、 对于JAVA程序的处理方法按我们指定的方法处理。2、 把数据库默认支持的编码格式改为GBK或GB2312的。如:在mysql中,我们可以在配置文件my.ini中加入以下语句实现:在[mysqld]区增加:default-character-set=gbk并增加:[client]default-character-set=gbk在SQL Server2K中,我们可以将数据库默认的语言设置为Simplified Chinese来达到目的。5、 针对JSP代码由于JSP是在运行时,由WEB容器进行动态编译的,如果我们没有指定JSP源文件的编码格式,则JSP编译器会获得服务器操作系统的 file.encoding值来对JSP文件编译的,它在移植时最容易出问题,如在中文win2k中可以很好运行的jsp文件拿到英文linux中就不行,尽管客户端都是一样的,那是因为容器在编译JSP文件时获取的操作系统的编码不同造成的(在中文wink中的file.encoding和在英文 Linux中file.encoding是不同的,且英文Linux的file.encoding对中文不支持,所以编译出来的JSP类就会有问题)。网络上讨论的大多数是此类问题,多是因为JSP文件移植平台时不能正确显示的问题,对于这类问题,我们了解了JAVA中程序编码转换的原理,解决起来就容易多了。我们建议的解决办法如下:1、我们要保证JSP向客户端输出时是采用中文编码方式输出的,即无论如何我们首先在我们的JSP源代编中加入以下一行:<%@page contentType="text/html; charset=gb2312"%>2、为了让JSP能正确获得传入的参数,我们在JSP源文件头加入下面一句:<%request.setCharacterEncoding("GB2312");%>3、为了让JSP编译器能正确地解码我们的含有中文字符的JSP文件,我们需要在JSP源文件中指定我们的JSP源文件的编码格式,具体来说,我们在JSP源文件头上加入下面的一句即可:<%@page pageEncoding="GB2312"%>或<%@page pageEncoding="GBK"%>这是JSP规范2.0新增加的指令。我们建议使用此方法来解JSP文件中的中文问题,下面的代码是一个正确做法的JSP文件的测试程序://testchinese.jsp<%@page pageEncoding="GB2312"%><%@page contentType="text/html; charset=gb2312"%><%request.setCharacterEncoding("GB2312");%><%String action = request.getParameter("ACTION");String name = "";String str = "";if(action!=null && action.equals("SENT")){name = request.getParameter("name");str = request.getParameter("str");}%><html><head><title></title><Script language="JavaScript">function Submit(){document.base.action = "?ACTION=SENT&str=传入的中文";document.base.method = "POST";document.base.submit();}</Script></head><body bgcolor="#FFFFFF" text="#000000" topmargin="5"><form name="base" method = "POST" target="_self"><input type="text" name="name" value="" size="30"><a href = "JavaScript:Submit()">提交</a></form><%if(action!=null && action.equals("SENT")){out.println("<br>你输入的字符为:"+name);out.println("<br>你通过URL传入的字符为:"+str);}%></body></html> 转贴供 楼主参考 3、 针对Servlet类针对Servlet,我们建议用以下方法:在编译Servlet类的源程序时,用-encoding指定编码为GBK或GB2312,且在向用户输出时的编码部分用response对象的 setContentType("text/html;charset=GBK");或gb2312来设置输出编码格式,同样在接收用户输入时,我们用 request.setCharacterEncoding("GB2312");这样无论我们的servlet类移植到什么操作系统中,只有客户端的浏览器支持中文显示,就可以正确显示。如下是一个正确的示例://HelloWorld.javapackage hello;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HelloWorld extends HttpServlet{public void init() throws ServletException { }public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{request.setCharacterEncoding("GB2312"); //设置输入编码格式response.setContentType("text/html;charset=GB2312"); //设置输出编码格式PrintWriter out = response.getWriter(); //建议使用PrintWriter输出out.println("<hr>");out.println("Hello World! This is created by Servlet!测试中文!");out.println("<hr>");}public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{request.setCharacterEncoding("GB2312"); //设置输入编码格式response.setContentType("text/html;charset=GB2312"); //设置输出编码格式String name = request.getParameter("name");String id = request.getParameter("id");if(name==null) name="";if(id==null) id="";PrintWriter out = response.getWriter(); //建议使用PrintWriter输出out.println("<hr>");out.println("你传入的中文字串是:" + name);out.println("<hr>你输入的id是:" + id);out.println("<hr>");}public void destroy() { }}请用javac -encoding gb2312 HelloWorld.java来编译此程序。测试此Servlet的程序如下所示:<%@page contentType="text/html; charset=gb2312"%><%request.setCharacterEncoding("GB2312");%><html><head><title></title><Script language="JavaScript">function Submit() {//通过URL传递中文字符串值给Servletdocument.base.action = "./HelloWorld?name=中文";document.base.method = "POST";document.base.submit();}</Script></head><body bgcolor="#FFFFFF" text="#000000" topmargin="5"><form name="base" method = "POST" target="_self"><input name="id" type="text" value="" size="30"><a href = "JavaScript:Submit()">传给Servlet</a></form></body></html>4、 JAVA程序和数据库之间为避免JAVA程序和数据库之间数据传递出现乱码现象,我们建议采用以下最优方法来处理:1、 对于JAVA程序的处理方法按我们指定的方法处理。2、 把数据库默认支持的编码格式改为GBK或GB2312的。如:在mysql中,我们可以在配置文件my.ini中加入以下语句实现:在[mysqld]区增加:default-character-set=gbk并增加:[client]default-character-set=gbk在SQL Server2K中,我们可以将数据库默认的语言设置为Simplified Chinese来达到目的。5、 针对JSP代码由于JSP是在运行时,由WEB容器进行动态编译的,如果我们没有指定JSP源文件的编码格式,则JSP编译器会获得服务器操作系统的 file.encoding值来对JSP文件编译的,它在移植时最容易出问题,如在中文win2k中可以很好运行的jsp文件拿到英文linux中就不行,尽管客户端都是一样的,那是因为容器在编译JSP文件时获取的操作系统的编码不同造成的(在中文wink中的file.encoding和在英文 Linux中file.encoding是不同的,且英文Linux的file.encoding对中文不支持,所以编译出来的JSP类就会有问题)。网络上讨论的大多数是此类问题,多是因为JSP文件移植平台时不能正确显示的问题,对于这类问题,我们了解了JAVA中程序编码转换的原理,解决起来就容易多了。我们建议的解决办法如下:1、我们要保证JSP向客户端输出时是采用中文编码方式输出的,即无论如何我们首先在我们的JSP源代编中加入以下一行:<%@page contentType="text/html; charset=gb2312"%>2、为了让JSP能正确获得传入的参数,我们在JSP源文件头加入下面一句:<%request.setCharacterEncoding("GB2312");%>3、为了让JSP编译器能正确地解码我们的含有中文字符的JSP文件,我们需要在JSP源文件中指定我们的JSP源文件的编码格式,具体来说,我们在JSP源文件头上加入下面的一句即可:<%@page pageEncoding="GB2312"%>或<%@page pageEncoding="GBK"%>这是JSP规范2.0新增加的指令。我们建议使用此方法来解JSP文件中的中文问题,下面的代码是一个正确做法的JSP文件的测试程序://testchinese.jsp<%@page pageEncoding="GB2312"%><%@page contentType="text/html; charset=gb2312"%><%request.setCharacterEncoding("GB2312");%><%String action = request.getParameter("ACTION");String name = "";String str = "";if(action!=null && action.equals("SENT")){name = request.getParameter("name");str = request.getParameter("str");}%><html><head><title></title><Script language="JavaScript">function Submit(){document.base.action = "?ACTION=SENT&str=传入的中文";document.base.method = "POST";document.base.submit();}</Script></head><body bgcolor="#FFFFFF" text="#000000" topmargin="5"><form name="base" method = "POST" target="_self"><input type="text" name="name" value="" size="30"><a href = "JavaScript:Submit()">提交</a></form><%if(action!=null && action.equals("SENT")){out.println("<br>你输入的字符为:"+name);out.println("<br>你通过URL传入的字符为:"+str);}%></body></html> servlet里如何得知客户端编码? hibernate帮助上的小程序问题 CSDN的编辑器使用方法 ServletContext 的功能与用处是什么? 生成word文档时出现乱码??《十分着急》 关于转发和重定向的区别 要如何自动一次下载多个文件呢? 有没有合租jsp服务器的? 一个深层次的问题。 请问用WML语言编程,怎样能够实现在手机上显示汉字? (没分了,大家帮忙)一个ip只能对应一个cookie文件? 怎么实现连续播放音乐啊
数据库SQL SERVER2000英文版
现在是将项目移到在任何一台中文的系统里面,都能正常保存数据,查看数据.但移到英文系统就不能保存中文了,查看是可以显示中文的.
请将数据库字符集改为gb2312、gbk看看
供 楼主参考
3、 针对Servlet类针对Servlet,我们建议用以下方法:在编译Servlet类的源程序时,用-encoding指定编码为GBK或GB2312,且在向用户输出时的编码部分用response对象的 setContentType("text/html;charset=GBK");或gb2312来设置输出编码格式,同样在接收用户输入时,我们用 request.setCharacterEncoding("GB2312");这样无论我们的servlet类移植到什么操作系统中,只有客户端的浏览器支持中文显示,就可以正确显示。如下是一个正确的示例://HelloWorld.java
package hello;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet
{
public void init() throws ServletException { }
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
request.setCharacterEncoding("GB2312"); //设置输入编码格式
response.setContentType("text/html;charset=GB2312"); //设置输出编码格式
PrintWriter out = response.getWriter(); //建议使用PrintWriter输出
out.println("<hr>");
out.println("Hello World! This is created by Servlet!测试中文!");
out.println("<hr>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
request.setCharacterEncoding("GB2312"); //设置输入编码格式
response.setContentType("text/html;charset=GB2312"); //设置输出编码格式
String name = request.getParameter("name");
String id = request.getParameter("id");
if(name==null) name="";
if(id==null) id="";
PrintWriter out = response.getWriter(); //建议使用PrintWriter输出
out.println("<hr>");
out.println("你传入的中文字串是:" + name);
out.println("<hr>你输入的id是:" + id);
out.println("<hr>");
}
public void destroy() { }
}
请用javac -encoding gb2312 HelloWorld.java来编译此程序。
测试此Servlet的程序如下所示:
<%@page contentType="text/html; charset=gb2312"%>
<%request.setCharacterEncoding("GB2312");%>
<html><head><title></title>
<Script language="JavaScript">
function Submit() {
//通过URL传递中文字符串值给Servlet
document.base.action = "./HelloWorld?name=中文";
document.base.method = "POST";
document.base.submit();
}
</Script>
</head><body bgcolor="#FFFFFF" text="#000000" topmargin="5">
<form name="base" method = "POST" target="_self">
<input name="id" type="text" value="" size="30">
<a href = "JavaScript:Submit()">传给Servlet</a>
</form></body></html>4、 JAVA程序和数据库之间为避免JAVA程序和数据库之间数据传递出现乱码现象,我们建议采用以下最优方法来处理:
1、 对于JAVA程序的处理方法按我们指定的方法处理。
2、 把数据库默认支持的编码格式改为GBK或GB2312的。如:在mysql中,我们可以在配置文件my.ini中加入以下语句实现:
在[mysqld]区增加:
default-character-set=gbk
并增加:
[client]
default-character-set=gbk
在SQL Server2K中,我们可以将数据库默认的语言设置为Simplified Chinese来达到目的。5、 针对JSP代码由于JSP是在运行时,由WEB容器进行动态编译的,如果我们没有指定JSP源文件的编码格式,则JSP编译器会获得服务器操作系统的 file.encoding值来对JSP文件编译的,它在移植时最容易出问题,如在中文win2k中可以很好运行的jsp文件拿到英文linux中就不行,尽管客户端都是一样的,那是因为容器在编译JSP文件时获取的操作系统的编码不同造成的(在中文wink中的file.encoding和在英文 Linux中file.encoding是不同的,且英文Linux的file.encoding对中文不支持,所以编译出来的JSP类就会有问题)。网络上讨论的大多数是此类问题,多是因为JSP文件移植平台时不能正确显示的问题,对于这类问题,我们了解了JAVA中程序编码转换的原理,解决起来就容易多了。我们建议的解决办法如下:1、我们要保证JSP向客户端输出时是采用中文编码方式输出的,即无论如何我们首先在我们的JSP源代编中加入以下一行:<%@page contentType="text/html; charset=gb2312"%>
2、为了让JSP能正确获得传入的参数,我们在JSP源文件头加入下面一句:
<%request.setCharacterEncoding("GB2312");%>
3、为了让JSP编译器能正确地解码我们的含有中文字符的JSP文件,我们需要在JSP源文件中指定我们的JSP源文件的编码格式,具体来说,我们在JSP源文件头上加入下面的一句即可:
<%@page pageEncoding="GB2312"%>或<%@page pageEncoding="GBK"%>
这是JSP规范2.0新增加的指令。
我们建议使用此方法来解JSP文件中的中文问题,下面的代码是一个正确做法的JSP文件的测试程序://testchinese.jsp
<%@page pageEncoding="GB2312"%>
<%@page contentType="text/html; charset=gb2312"%>
<%request.setCharacterEncoding("GB2312");%>
<%
String action = request.getParameter("ACTION");
String name = "";
String str = "";
if(action!=null && action.equals("SENT"))
{
name = request.getParameter("name");
str = request.getParameter("str");
}
%>
<html>
<head>
<title></title>
<Script language="JavaScript">
function Submit()
{
document.base.action = "?ACTION=SENT&str=传入的中文";
document.base.method = "POST";
document.base.submit();
}
</Script>
</head>
<body bgcolor="#FFFFFF" text="#000000" topmargin="5">
<form name="base" method = "POST" target="_self">
<input type="text" name="name" value="" size="30">
<a href = "JavaScript:Submit()">提交</a>
</form>
<%
if(action!=null && action.equals("SENT"))
{
out.println("<br>你输入的字符为:"+name);
out.println("<br>你通过URL传入的字符为:"+str);
}
%>
</body>
</html>
供 楼主参考
3、 针对Servlet类针对Servlet,我们建议用以下方法:在编译Servlet类的源程序时,用-encoding指定编码为GBK或GB2312,且在向用户输出时的编码部分用response对象的 setContentType("text/html;charset=GBK");或gb2312来设置输出编码格式,同样在接收用户输入时,我们用 request.setCharacterEncoding("GB2312");这样无论我们的servlet类移植到什么操作系统中,只有客户端的浏览器支持中文显示,就可以正确显示。如下是一个正确的示例://HelloWorld.java
package hello;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet
{
public void init() throws ServletException { }
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
request.setCharacterEncoding("GB2312"); //设置输入编码格式
response.setContentType("text/html;charset=GB2312"); //设置输出编码格式
PrintWriter out = response.getWriter(); //建议使用PrintWriter输出
out.println("<hr>");
out.println("Hello World! This is created by Servlet!测试中文!");
out.println("<hr>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
request.setCharacterEncoding("GB2312"); //设置输入编码格式
response.setContentType("text/html;charset=GB2312"); //设置输出编码格式
String name = request.getParameter("name");
String id = request.getParameter("id");
if(name==null) name="";
if(id==null) id="";
PrintWriter out = response.getWriter(); //建议使用PrintWriter输出
out.println("<hr>");
out.println("你传入的中文字串是:" + name);
out.println("<hr>你输入的id是:" + id);
out.println("<hr>");
}
public void destroy() { }
}
请用javac -encoding gb2312 HelloWorld.java来编译此程序。
测试此Servlet的程序如下所示:
<%@page contentType="text/html; charset=gb2312"%>
<%request.setCharacterEncoding("GB2312");%>
<html><head><title></title>
<Script language="JavaScript">
function Submit() {
//通过URL传递中文字符串值给Servlet
document.base.action = "./HelloWorld?name=中文";
document.base.method = "POST";
document.base.submit();
}
</Script>
</head><body bgcolor="#FFFFFF" text="#000000" topmargin="5">
<form name="base" method = "POST" target="_self">
<input name="id" type="text" value="" size="30">
<a href = "JavaScript:Submit()">传给Servlet</a>
</form></body></html>4、 JAVA程序和数据库之间为避免JAVA程序和数据库之间数据传递出现乱码现象,我们建议采用以下最优方法来处理:
1、 对于JAVA程序的处理方法按我们指定的方法处理。
2、 把数据库默认支持的编码格式改为GBK或GB2312的。如:在mysql中,我们可以在配置文件my.ini中加入以下语句实现:
在[mysqld]区增加:
default-character-set=gbk
并增加:
[client]
default-character-set=gbk
在SQL Server2K中,我们可以将数据库默认的语言设置为Simplified Chinese来达到目的。5、 针对JSP代码由于JSP是在运行时,由WEB容器进行动态编译的,如果我们没有指定JSP源文件的编码格式,则JSP编译器会获得服务器操作系统的 file.encoding值来对JSP文件编译的,它在移植时最容易出问题,如在中文win2k中可以很好运行的jsp文件拿到英文linux中就不行,尽管客户端都是一样的,那是因为容器在编译JSP文件时获取的操作系统的编码不同造成的(在中文wink中的file.encoding和在英文 Linux中file.encoding是不同的,且英文Linux的file.encoding对中文不支持,所以编译出来的JSP类就会有问题)。网络上讨论的大多数是此类问题,多是因为JSP文件移植平台时不能正确显示的问题,对于这类问题,我们了解了JAVA中程序编码转换的原理,解决起来就容易多了。我们建议的解决办法如下:1、我们要保证JSP向客户端输出时是采用中文编码方式输出的,即无论如何我们首先在我们的JSP源代编中加入以下一行:<%@page contentType="text/html; charset=gb2312"%>
2、为了让JSP能正确获得传入的参数,我们在JSP源文件头加入下面一句:
<%request.setCharacterEncoding("GB2312");%>
3、为了让JSP编译器能正确地解码我们的含有中文字符的JSP文件,我们需要在JSP源文件中指定我们的JSP源文件的编码格式,具体来说,我们在JSP源文件头上加入下面的一句即可:
<%@page pageEncoding="GB2312"%>或<%@page pageEncoding="GBK"%>
这是JSP规范2.0新增加的指令。
我们建议使用此方法来解JSP文件中的中文问题,下面的代码是一个正确做法的JSP文件的测试程序://testchinese.jsp
<%@page pageEncoding="GB2312"%>
<%@page contentType="text/html; charset=gb2312"%>
<%request.setCharacterEncoding("GB2312");%>
<%
String action = request.getParameter("ACTION");
String name = "";
String str = "";
if(action!=null && action.equals("SENT"))
{
name = request.getParameter("name");
str = request.getParameter("str");
}
%>
<html>
<head>
<title></title>
<Script language="JavaScript">
function Submit()
{
document.base.action = "?ACTION=SENT&str=传入的中文";
document.base.method = "POST";
document.base.submit();
}
</Script>
</head>
<body bgcolor="#FFFFFF" text="#000000" topmargin="5">
<form name="base" method = "POST" target="_self">
<input type="text" name="name" value="" size="30">
<a href = "JavaScript:Submit()">提交</a>
</form>
<%
if(action!=null && action.equals("SENT"))
{
out.println("<br>你输入的字符为:"+name);
out.println("<br>你通过URL传入的字符为:"+str);
}
%>
</body>
</html>