<body onload="document.charset='UTF-8';" >
解决方案 »
- 新手提问,请高手指教一下
- 加了过滤器,字符编码为UTF-8,为什么中文不能正常显示?
- 求struts1.3.9+hibernate3.0+spring2.0的中文帮助文档,原码,及JAR包下载地址
- 急!使用WebSphere 服务器数据源连接Oracle数据库,查出数据和数据库中数据不一致!
- tomcat配置数据源总报错,不知为什么,高手来解决下下
- 中文乱码,谁能解决了我请他吃饭
- 求Spring 框架的缺点
- struts 用validator验证,郁闷的心流血的问题
- jquery里.ajax({ .......... dataType: "json" }) 里面dataType: "json"的问题
- spring 处理复杂的业务操作日志
- 100分求解“SQL数据库数据同步”高手进
- 想找人合作开发一套blog系统,不知道哪位有兴趣
public class GBKConvert {
public GBKConvert() {
}
public static String isoToGbk(String inStr) {
// 将字符串的内码从ISO8859-1转换到GBK String outStr = inStr;
try {
if (inStr == null) {
return "";
}
else {
outStr = "";
try {
outStr = new String(inStr.getBytes("ISO8859-1"), "GBK");
}
catch (Exception ex) {
ex.printStackTrace();
} }
}
catch (Exception ex) {
ex.printStackTrace();
}
return outStr;
}}
转换时调用它就行了。
* 字符串内码转换 iso8859-1 to GB2312
* @param ori 源字符串
* @return 转换后的字符串
*/
public static String isotogb(String ori) {
String newstr = "";
try {
if (ori == null) {
ori = "";
}
byte[] byte1 = null;
byte1 = ori.getBytes("ISO-8859-1");
newstr = new String(byte1, "EUC_CN");
return newstr;
}
catch (Exception e) {
e.printStackTrace();
return newstr;
}
} /**
* 字符串内码转换 GB2312 to iso8859-1
* @param ori 源字符串
* @return 转换后的字符串
*/
public static String gbtoiso(String ori) {
String newstr = "";
try {
if (ori == null) {
ori = "";
}
byte[] byte1 = null;
byte1 = ori.getBytes("EUC_CN");
newstr = new String(byte1, "ISO-8859-1");
return newstr;
}
catch (Exception e) {
e.printStackTrace();
return newstr;
}
}
解决方法如下:
该方法已知适用的版本tomact5.0.18,tomcat5.0.9。
已知不适用的版本为tomcat5.0.28。
问题描述:
在inputtext中输入中文,然后在输出,显示为乱码。
解决方法:
1、自定义转器
package util;
import java.util.Map;
import javax.faces.component.UIComponent;
import javax.faces.convert.Converter;
import javax.faces.context.FacesContext;
import javax.faces.convert.ConverterException;public class StringConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component,
String newValues) throws ConverterException {
String newstr = "";
if (newValues == null) {
newValues = "";
}
byte[] byte1 = null;
try {
byte1 = newValues.getBytes("ISO-8859-1");
newstr = new String(byte1, "GB2312");
UIInput input=(UIInput)component;//
input.setSubmittedValue(newstr);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} return newstr; } public String getAsString(FacesContext context, UIComponent component,
Object Values) throws ConverterException {
return (String) Values;
}
}2、注册转换器
faces-config.xml片段
<converter>
<converter-id>util.stringconverter</converter-id>
<converter-class>util.StringConverter</converter-class>
</converter>3、在页面使用转换器
<h:inputText id="account" value="#{user.account}" required="true" styleClass="input"> <f:converter converterId="util.stringconverter"/>
</h:inputText>
然后使用filters
/**
* 功能或作用:转换字符串的字符集为中文
* @param InputStr:输入字符串
* @return 中文字符集的字符串
*/
public String toChinese(String InputStr)
{
if(InputStr==null)
return null;
try
{
String convert=new String(InputStr.getBytes("ISO8859-1"),"gb2312");
return convert;
}
catch(Exception e){}
return null;
}