struts2表单提交后数据库存储中文乱码问题
2012-12-20 21:24
337 查看
表单提交后[/b]action[/b]获取到的中文为乱码排查步骤(提交的是[/b]action[/b]的属性):[/b][/b]
1[/b]、需要在[/b]struts.xml[/b]中做[/b]i18n[/b]配置[/b][/b]
<constant name="struts.i18n.encoding" value="utf-8" />[/b]
2[/b]、配置后[/b]action[/b]中打印是否能够获取到中文,如果获取不到中文,在[/b]action[/b]中进行转码,如下:[/b][/b]
String name = new String(project.getName().getBytes("ISO-8859-1"),"UTF-8");[/b]
或者写一个类定义转换字符编码的方法如下:[/b][/b]
public static String convert(String str){
try {
byte[] bytes = str.getBytes("ISO-8859-1");
return new String(bytes,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return str;
}
}[/b]
使用时:[/b][/b]
String [/b]转换后的字符串[/b] = [/b]类名[/b].conert([/b]要转换编码的字符串[/b]);[/b]
Action[/b]属性名[/b].set[/b]方法(转换后的字符串)[/b][/b]
Eg:[/b] String result = Chinese.convert(project.getName());
project.setName(result);
3[/b]、检查[/b]myeclipse[/b]的编码格式:[/b]
[/b][/b]
4[/b]、[/b]action[/b]调用[/b]dao[/b]的方法,[/b]DAO[/b]方法内部在插入前获取到插入的信息,中文能正常先生,但插入后数据库显示乱码,抛开数据库格式不是[/b]UTF-8[/b]的可能,用工具插入中文数据正常,用[/b]Myeclipse[/b]插入数据库中文时,显示乱码:[/b]
原因是:数据库连接时与工具连接的编码不一样导致失败的,[/b]在连接数据库时添加编码格式为UTF-8:[/b]
jdbc:mysql://192.168.190.7:3306/struts2[/b]?useUnicode=true&characterEncoding=UTF-8[/b][/b]
1[/b]、需要在[/b]struts.xml[/b]中做[/b]i18n[/b]配置[/b][/b]
<constant name="struts.i18n.encoding" value="utf-8" />[/b]
2[/b]、配置后[/b]action[/b]中打印是否能够获取到中文,如果获取不到中文,在[/b]action[/b]中进行转码,如下:[/b][/b]
String name = new String(project.getName().getBytes("ISO-8859-1"),"UTF-8");[/b]
或者写一个类定义转换字符编码的方法如下:[/b][/b]
public static String convert(String str){
try {
byte[] bytes = str.getBytes("ISO-8859-1");
return new String(bytes,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return str;
}
}[/b]
使用时:[/b][/b]
String [/b]转换后的字符串[/b] = [/b]类名[/b].conert([/b]要转换编码的字符串[/b]);[/b]
Action[/b]属性名[/b].set[/b]方法(转换后的字符串)[/b][/b]
Eg:[/b] String result = Chinese.convert(project.getName());
project.setName(result);
3[/b]、检查[/b]myeclipse[/b]的编码格式:[/b]
[/b][/b]
4[/b]、[/b]action[/b]调用[/b]dao[/b]的方法,[/b]DAO[/b]方法内部在插入前获取到插入的信息,中文能正常先生,但插入后数据库显示乱码,抛开数据库格式不是[/b]UTF-8[/b]的可能,用工具插入中文数据正常,用[/b]Myeclipse[/b]插入数据库中文时,显示乱码:[/b]
原因是:数据库连接时与工具连接的编码不一样导致失败的,[/b]在连接数据库时添加编码格式为UTF-8:[/b]
jdbc:mysql://192.168.190.7:3306/struts2[/b]?useUnicode=true&characterEncoding=UTF-8[/b][/b]
相关文章推荐
- Struts2表单提交的中文字符数据用hibernate存储在数据库中是乱码的问题。
- 通过struts2获取存储到数据库出现中文乱码问题
- Spring表单提交至数据库中文乱码问题
- struts2表单提交的中文参数后台乱码问题解决
- struts2中jsp页面表单提交到action中文乱码问题
- struts2中表单提交后action中文乱码问题
- 关于struts2中表单提交时,中文乱码问题的解决
- Struts2提交表单中文乱码问题解决
- 关于struts2中表单提交时,中文乱码问题的解决
- JSP中乱码问题解决(一、JSP页面显示乱码,二、表单提交中文时出现乱码,三、数据库连接出现乱码,四、数据库的显示乱码 )
- 解决struts2以GET方式提交表单中文乱码问题
- 解决struts2以GET方式提交表单中文乱码问题
- struts2中jsp页面表单提交到action中文乱码问题
- struts2 jsp提交到action出现中文乱码问题
- Java web开发中使用get提交表单时的中文乱码问题
- SSH整合和struts2表单提交乱码问题解决办法
- struts2中form提交到action中的中文参数乱码问题解决办法(包括取中文路径)
- 终极解决MagicAjax提交中文表单乱码的问题
- struts2 action获取ajax提交数据中文乱码问题
- 表单中的中文提交保存到数据库变成乱码