常见中文问题的解决方法: 1.JDK的中文问题:
不要使用DataInputStream与DataOutputStream,而要用 BufferedReader与BufferedWriter。2.Visual Age3.0的中文问题: 很简单。在Window-option菜单中给List、Source的选项 设置支持中文的字体就可以了。 3.数据库中文问题: Access + Javaodbc驱动程序不能支持中文(用getByte()也 不行),目前我还没有找到解决方法。 MySQl + Javaodbc驱动程序也有中文问题,目前我还没有找 到解决方法。 MySQl + mm.mysql.jdbc没有任何中文问题,但是建立数据 表,有中文输入的域,最好设成bianry,否则因为MySQL的 varchar、char、text等属性的域在查询时是不分大小写时, 这样中文查询时会出现问题。4.Jsp的中文问题。 setPropotery时的中文问题,使用URLDecoder.decode()进行 转换即可。
不要使用DataInputStream与DataOutputStream,而要用 BufferedReader与BufferedWriter。2.Visual Age3.0的中文问题: 很简单。在Window-option菜单中给List、Source的选项 设置支持中文的字体就可以了。 3.数据库中文问题: Access + Javaodbc驱动程序不能支持中文(用getByte()也 不行),目前我还没有找到解决方法。 MySQl + Javaodbc驱动程序也有中文问题,目前我还没有找 到解决方法。 MySQl + mm.mysql.jdbc没有任何中文问题,但是建立数据 表,有中文输入的域,最好设成bianry,否则因为MySQL的 varchar、char、text等属性的域在查询时是不分大小写时, 这样中文查询时会出现问题。4.Jsp的中文问题。 setPropotery时的中文问题,使用URLDecoder.decode()进行 转换即可。
解决方案 »
- JSP 编写登录程序的问题
- firfox浏览器设置 某段文字 背景色的问题
- 小弟刚学servlet,遇到一个问题急求高人指点
- jsp中向sql server放如图片
- 请问怎么获取这样的表单中的name是多少?急!!!
- com.microsoft.sqlserver.jdbc.SQLServerException: 索引 1 超出范围,麻烦各位看看这是什么异常啊!
- 处理表单问题
- jswdk如何使用javabeans?急急急!
- oracle数据库错误:Missing IN or OUT parameter at index:: 1
- JAVA能抛出异常,能不能抛出事件?
- 这样的JSP网站可以吗!
- 请问这是什么错误?
<%request.setCharacterEncoding("gb2312");%>
服务器如果是Linux或其他自身并不支持汉字的系统,需要在程序
中进行汉字转换。下面是一个转换函数:<!-- 转换为中文简体 -->
<%!
public String getStr(String str){
try{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("iso8859-1");
String temp=new String(temp_t,"gb2312");
}
catch(Exception e){
//--system.out.print("can not change charset");
}
return temp;
}
%><!-- 调用 -->
<%
String s = getStr(request.getParameter("name"));
out.println(s) //显示汉字
%>
我认为,jsp中文问题,不同的服务器解决的方法不一样,同一种服务器
版本不一样,解决的方法也可能不一样
所以你就需要慢慢试了。
很容易解决的
关于汉字出错的问题,可能根本原因还是没找到。
<%@ page contentType="text/html; charset=GB2312" %>
可以尝试把gb2312变成iso8859_1或把ISO8859_1变成gb2312.
这样可以解决显示问题。
当把数据写到数据库时可以用
String un=new String(request.getParameter("username").getBytes("ISO-8859-1"),"gb2312");
一个补充是,最好用GB18030编码(J2SDK 1.4支持),否则碰到“朱镕基”的“镕”将无法显示。J2SDK 1.3可以用GBK顶一下。否则就必须把gb2312之外的字符换成\uXXXX的表达方式(手动转码)。
两个前提是:
1. 只有Servlet2.3/JSP 1.2开始(Tomcat 4+)支持setCharacterEncoding()方法。
2. 在JSP里调用request.setCharacterEncoding()对当前JSP的参数是无效的!具体原因我在水木清华BBS的Java版写过一篇文章分析。必须在Servlet里使用,或者从当前JSP forward到下一个JSP才起作用。最后,最佳的方法是写一个filter来处理(在filter里调用setCharacterEncoding方法),Tomcat的例子里有encoding filter的,可以参考。