JSP中输入的汉字,提交保存到Oracle数据库里后怎么变成?????,谁帮我解决? 很古老的问题啦!java的中文问题!凡是从request中取得的中文都需要转换,不然都是乱码!参照以前的帖子! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <%@ page contentType="text/html;charset=gb2312"%>在网页中加入这段代码可以很好的解决中文问题! 用String.getBytes()把汉字转换为字节入数据库吧,不知行不行 import java.io.*;import java.util.*;/** * 用于处理文本对象*/public class DoText { public DoText() { } /** * 分割字串 * @param source 原始字符 * @param div 分割符 * @return 字符串数组 */ public String[] split(String source,String div){ int arynum = 0,intIdx=0,intIdex=0,div_length = div.length(); if(source.compareTo("")!=0){ if(source.indexOf(div)!=-1){ intIdx = source.indexOf(div); for(int intCount =1 ; ; intCount++){ if(source.indexOf(div,intIdx+div_length)!=-1){ intIdx= source.indexOf(div,intIdx+div_length); arynum = intCount; } else {arynum+=2;break;} } }else arynum =1; }else arynum = 0; intIdx=0; intIdex=0; String[] returnStr = new String[arynum]; if(source.compareTo("")!=0){ if(source.indexOf(div)!=-1){ intIdx = (int)source.indexOf(div); returnStr[0]= (String)source.substring(0,intIdx); for(int intCount =1 ; ; intCount++){ if(source.indexOf(div,intIdx+div_length)!=-1){ intIdex=(int)source.indexOf(div,intIdx+div_length); returnStr[intCount] = (String)source.substring(intIdx+div_length,intIdex); intIdx = (int)source.indexOf(div,intIdx+div_length); } else { returnStr[intCount] = (String)source.substring(intIdx+div_length,source.length()); break; } } } else {returnStr[0] = (String)source.substring(0,source.length());return returnStr;} } else {return returnStr;} return returnStr; } public String dealNull(String str) { String returnstr = null; if (str == null) returnstr = ""; else returnstr = str; return returnstr; } public Object dealNull(Object obj){ Object returnstr = null; if (obj == null) returnstr = (Object)(""); else returnstr = obj; return returnstr; } int dealEmpty(String s) { s = dealNull(s); if (s.equals("")) return 0; return Integer.parseInt(s); } /** * 字符串替换函数 * @param str 原始字符串 * @param substr 要替换的字符 * @param restr 替换后的字符 * @return 替换完成的字符串 */ public String replace(String str,String substr,String restr){ String[] tmp = split(str,substr); String returnstr = null; if(tmp.length!=0) { returnstr = tmp[0]; for(int i = 0 ; i < tmp.length - 1 ; i++) returnstr =dealNull(returnstr) + restr +tmp[i+1]; } return dealNull(returnstr); } /** * 将回车符替换成Html中的换行符 * @param txt 原始文本 * @return 替换之后的文本 */ public String addBr(String txt){ if (txt != null) { txt = replace(txt,"\n","<br>"); } return txt; } public String addColon(String txt) { if (txt != null) { txt = replace(txt,"<br>",":<br>"); } return txt; } public String changeColor(String txt) { if (txt != null) { txt = replace(txt,"<br>","</font><br>"); txt = replace(txt,"<br>:","<br><font color=#408080>:"); } return txt; } /** * 将Html中的换行符去掉 * @param txt 原始文本 * @return 替换之后的文本 */ public String delBr(String txt){ if (txt != null) { txt = replace(txt,"<br>",""); } return txt; } /** * 为'和\增加转移符,以便加入数据库,'替换为\',\替换为\\ * @param txt 原始文本 * @return 增加转移符后的文本 */ public String addSlashes(String txt){ if (txt != null) { txt = replace(txt,"\\","\\\\"); txt = replace(txt,"\'","\\\'"); } return txt; } /** * 取消转移符 * @param txt 原始文本 * @return 取消转移符后的文本 */ public String stripslashes(String txt){ if (txt != null) { txt = replace(txt,"\\\\","\\"); txt = replace(txt,"\'","'"); txt = replace(txt,"\\\"","\""); txt = replace(txt,"\\"","\""); } return txt; } /** * 取消Html标记 * @param txt 原始文本 * @return 取消Html标记后的文本 */ public String htmlEncode(String txt){ if (txt != null) { txt = replace(txt,"&","&"); txt = replace(txt,"&amp;","&"); txt = replace(txt,"&quot;","""); txt = replace(txt,"\"","""); txt = replace(txt,"&lt;","<"); txt = replace(txt,"<","<"); txt = replace(txt,"&gt;",">"); txt = replace(txt,">",">"); txt = replace(txt,"&nbsp;"," "); //txt = replace(txt," "," "); } return txt; } /** * 返回Html标记 * @param txt 原始文本 * @return 返回Html后的文本 */ public String unHtmlEncode(String txt){ if (txt != null) { txt = replace(txt,"&","&"); txt = replace(txt,""","\""); txt = replace(txt,"<","<"); txt = replace(txt,">",">"); txt = replace(txt," "," "); } return txt; } /** * 去除Html中脚本标记 * @param txt 原始文本 * @return 去除脚本后的文本 */ public String ScriptEncode(String txt){ if (txt != null) { txt = replace(txt,"script"," "); txt = replace(txt,"SCRIPT"," "); txt = replace(txt,"Script"," "); txt = replace(txt,"SCript"," "); } return txt; } /** * 解决中文问题,ISO转为GBK编码,用于POST,GET方式取得数据 * @param str 原始文本 * @return 转码后的文本 */ public String iso2gb(String str) { if (str != null) { byte[] tmpbyte=null; try { tmpbyte=str.getBytes("ISO8859_1"); } catch (UnsupportedEncodingException e) { System.out.println("Error: Method: dbconn.iso2gb :"+e.getMessage()); } try { str=new String(tmpbyte,"GBK"); } catch(UnsupportedEncodingException e) { System.out.println("Error: Method: dbconn.gb2iso :"+e.getMessage()); } } return str; } /** * 解决中文问题,GBK转ISO编码,用于从数据库中存入转码 * @param str 原始文本 * @return 转换后文本 */ public String gb2iso(String str) { if (str != null) { byte[] tmpbyte=null; try { tmpbyte=str.getBytes("GBK"); } catch(UnsupportedEncodingException e) { System.out.println("Error: Method: dbconn.gb2iso :"+e.getMessage()); } try { str=new String(tmpbyte,"ISO8859_1"); } catch(UnsupportedEncodingException e) { System.out.println("Error: Method: dbconn.gb2iso :"+e.getMessage()); } } return str; } /**public static void main(String args[]) { String str=null; String sou="我日死你"; DoText app=new DoText(); str=app.gb2iso(sou); sou=app.iso2gb( str); System.out.println(str); System.out.println(sou); } **/} 使用getBytes()入库才可以,谢了各位。zxbest和btada请查收分数。 求个砸金蛋程序 关于Struts2和jquery整合 jdbcTemplate参数问题,请教 不能安装SQLserver2005,出现了这个提示是什么原因?? 在jsp页面中怎样实现多级分类的显示 一个新手向各位高手问一个关于servlet的问题!望帮助一下! 在JSP中为什么javabean的类实例建立不起来 富有挑战性的中文乱码问题,解决者200分!!! easyui datagrid 谁给一后台个获取用户列表的小Demo啊 javascript里面有没有 定位打印问题(用iText) 按钮的显示问题.
在网页中加入这段代码可以很好的解决中文问题!
import java.util.*;/**
* 用于处理文本对象
*/public class DoText { public DoText() {
} /**
* 分割字串
* @param source 原始字符
* @param div 分割符
* @return 字符串数组
*/
public String[] split(String source,String div){
int arynum = 0,intIdx=0,intIdex=0,div_length = div.length();
if(source.compareTo("")!=0){
if(source.indexOf(div)!=-1){
intIdx = source.indexOf(div);
for(int intCount =1 ; ; intCount++){
if(source.indexOf(div,intIdx+div_length)!=-1){
intIdx= source.indexOf(div,intIdx+div_length);
arynum = intCount;
}
else {arynum+=2;break;}
}
}else arynum =1;
}else arynum = 0; intIdx=0;
intIdex=0;
String[] returnStr = new String[arynum]; if(source.compareTo("")!=0){
if(source.indexOf(div)!=-1){
intIdx = (int)source.indexOf(div);
returnStr[0]= (String)source.substring(0,intIdx);
for(int intCount =1 ; ; intCount++){
if(source.indexOf(div,intIdx+div_length)!=-1){
intIdex=(int)source.indexOf(div,intIdx+div_length);
returnStr[intCount] = (String)source.substring(intIdx+div_length,intIdex);
intIdx = (int)source.indexOf(div,intIdx+div_length);
}
else {
returnStr[intCount] = (String)source.substring(intIdx+div_length,source.length());
break;
}
}
}
else {returnStr[0] = (String)source.substring(0,source.length());return returnStr;}
}
else {return returnStr;}
return returnStr;
}
public String dealNull(String str) {
String returnstr = null;
if (str == null) returnstr = "";
else returnstr = str;
return returnstr;
} public Object dealNull(Object obj){
Object returnstr = null;
if (obj == null) returnstr = (Object)("");
else returnstr = obj;
return returnstr;
} int dealEmpty(String s) {
s = dealNull(s);
if (s.equals("")) return 0;
return Integer.parseInt(s);
} /**
* 字符串替换函数
* @param str 原始字符串
* @param substr 要替换的字符
* @param restr 替换后的字符
* @return 替换完成的字符串
*/
public String replace(String str,String substr,String restr){
String[] tmp = split(str,substr);
String returnstr = null;
if(tmp.length!=0) {
returnstr = tmp[0];
for(int i = 0 ; i < tmp.length - 1 ; i++)
returnstr =dealNull(returnstr) + restr +tmp[i+1];
}
return dealNull(returnstr);
} /**
* 将回车符替换成Html中的换行符
* @param txt 原始文本
* @return 替换之后的文本
*/
public String addBr(String txt){
if (txt != null) {
txt = replace(txt,"\n","<br>");
}
return txt;
} public String addColon(String txt) {
if (txt != null) {
txt = replace(txt,"<br>",":<br>");
}
return txt;
} public String changeColor(String txt) {
if (txt != null) {
txt = replace(txt,"<br>","</font><br>");
txt = replace(txt,"<br>:","<br><font color=#408080>:");
}
return txt;
} /**
* 将Html中的换行符去掉
* @param txt 原始文本
* @return 替换之后的文本
*/
public String delBr(String txt){
if (txt != null) {
txt = replace(txt,"<br>","");
}
return txt;
} /**
* 为'和\增加转移符,以便加入数据库,'替换为\',\替换为\\
* @param txt 原始文本
* @return 增加转移符后的文本
*/
public String addSlashes(String txt){
if (txt != null) {
txt = replace(txt,"\\","\\\\");
txt = replace(txt,"\'","\\\'");
}
return txt;
} /**
* 取消转移符
* @param txt 原始文本
* @return 取消转移符后的文本
*/
public String stripslashes(String txt){
if (txt != null) {
txt = replace(txt,"\\\\","\\");
txt = replace(txt,"\'","'");
txt = replace(txt,"\\\"","\"");
txt = replace(txt,"\\"","\"");
}
return txt;
} /**
* 取消Html标记
* @param txt 原始文本
* @return 取消Html标记后的文本
*/
public String htmlEncode(String txt){
if (txt != null) {
txt = replace(txt,"&","&");
txt = replace(txt,"&amp;","&");
txt = replace(txt,"&quot;",""");
txt = replace(txt,"\"",""");
txt = replace(txt,"&lt;","<");
txt = replace(txt,"<","<");
txt = replace(txt,"&gt;",">");
txt = replace(txt,">",">");
txt = replace(txt,"&nbsp;"," ");
//txt = replace(txt," "," ");
}
return txt;
} /**
* 返回Html标记
* @param txt 原始文本
* @return 返回Html后的文本
*/
public String unHtmlEncode(String txt){
if (txt != null) {
txt = replace(txt,"&","&");
txt = replace(txt,""","\"");
txt = replace(txt,"<","<");
txt = replace(txt,">",">");
txt = replace(txt," "," ");
}
return txt;
} /**
* 去除Html中脚本标记
* @param txt 原始文本
* @return 去除脚本后的文本
*/
public String ScriptEncode(String txt){
if (txt != null) {
txt = replace(txt,"script"," ");
txt = replace(txt,"SCRIPT"," ");
txt = replace(txt,"Script"," ");
txt = replace(txt,"SCript"," ");
}
return txt;
} /**
* 解决中文问题,ISO转为GBK编码,用于POST,GET方式取得数据
* @param str 原始文本
* @return 转码后的文本
*/
public String iso2gb(String str) {
if (str != null) {
byte[] tmpbyte=null;
try {
tmpbyte=str.getBytes("ISO8859_1");
}
catch (UnsupportedEncodingException e) {
System.out.println("Error: Method: dbconn.iso2gb :"+e.getMessage());
}
try {
str=new String(tmpbyte,"GBK");
}
catch(UnsupportedEncodingException e) {
System.out.println("Error: Method: dbconn.gb2iso :"+e.getMessage());
}
}
return str;
} /**
* 解决中文问题,GBK转ISO编码,用于从数据库中存入转码
* @param str 原始文本
* @return 转换后文本
*/
public String gb2iso(String str) {
if (str != null) {
byte[] tmpbyte=null;
try {
tmpbyte=str.getBytes("GBK");
}
catch(UnsupportedEncodingException e) {
System.out.println("Error: Method: dbconn.gb2iso :"+e.getMessage());
}
try {
str=new String(tmpbyte,"ISO8859_1");
}
catch(UnsupportedEncodingException e) {
System.out.println("Error: Method: dbconn.gb2iso :"+e.getMessage());
}
}
return str;
}
/**public static void main(String args[])
{
String str=null;
String sou="我日死你";
DoText app=new DoText();
str=app.gb2iso(sou);
sou=app.iso2gb( str);
System.out.println(str);
System.out.println(sou);
}
**/
}
zxbest和btada请查收分数。