jquery文本编辑器插件summernote中文乱码问题

Summernote 是一个简单灵活的所见即所得的 HTML 在线编辑器,基于 jQuery 和 Bootstrap 构建,支持快捷键操作,提供大量可定制的选项。

结合项目使用,出现中文乱码问题,解决方法

1 数据库中将字段类型应存为BLOB

2 封装方法对富文本框中内容进行解码

/**
	 * Html解码,将HTML4格式的字符串转码解码为普通字符串.
	 * org.apache.commons.lang3包下
	 * 比如 "bread" & "butter"转化为"bread" & "butter"
	 */
	public static String unescapeHtml(String html) {
		return StringEscapeUtils.unescapeHtml4(html);
	}

3 自定义typehandler,解决mybatis存储blob字段后,出现乱码的问题

@MappedJdbcTypes(JdbcType.BLOB)
public class ConvertBlobTypeHandler extends BaseTypeHandler<String> {//指定字符集  
    private static final String DEFAULT_CHARSET = "utf-8";  

@Override  
public void setNonNullParameter(PreparedStatement ps, int i,  
        String parameter, JdbcType jdbcType) throws SQLException {  
    ByteArrayInputStream bis;  
    try {  
        bis = new ByteArrayInputStream(parameter.getBytes(DEFAULT_CHARSET));  
    } catch (UnsupportedEncodingException e) {  
        throw new RuntimeException("Blob Encoding Error!");  
    }     
    ps.setBinaryStream(i, bis, parameter.length());  
}  

@Override  
public String getNullableResult(ResultSet rs, String columnName)  
        throws SQLException {  
    Blob blob = rs.getBlob(columnName);  
    byte[] returnValue = null;  
    if (null != blob) {  
        returnValue = blob.getBytes(1, (int) blob.length());  
    }  
    try {  
        return new String(returnValue, DEFAULT_CHARSET);  
    } catch (UnsupportedEncodingException e) {  
        throw new RuntimeException("Blob Encoding Error!");  
    }  
}  

@Override  
public String getNullableResult(CallableStatement cs, int columnIndex)  
        throws SQLException {  
    Blob blob = cs.getBlob(columnIndex);  
    byte[] returnValue = null;  
    if (null != blob) {  
        returnValue = blob.getBytes(1, (int) blob.length());  
    }  
    try {  
        return new String(returnValue, DEFAULT_CHARSET);  
    } catch (UnsupportedEncodingException e) {  
        throw new RuntimeException("Blob Encoding Error!");  
    }  
}

@Override
public String getNullableResult(ResultSet arg0, int arg1) throws SQLException {
	// TODO Auto-generated method stub
	return null;
}  } 

4 Mapper层

 <resultMap type="TestNote" id="TestNoteResult" autoMapping="true">
    	<result column="contents" property="contents"   typeHandler="com.core.mapper.ConvertBlobTypeHandler"/>
    </resultMap>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值