富文本编辑器是将样式及内容一起放入数据库,所用数据类型为blob型,在数据装入数据库及从数据库中读取时应注意编码格式问题,以防止出现乱码。出现乱码时主要解决手段:

1.查看创建blob对象是不是用的“utf8”编码格式

2.查询时是否进行了二次编码解析,主要体现在mapper.xml文件中。blob对应字段要进行处理,处理内容如下:

[java] view plain copy
  1. package cn.ffcs.drive.common.util;
  2. import java.io.ByteArrayInputStream;
  3. import java.io.UnsupportedEncodingException;
  4. import java.sql.Blob;
  5. import java.sql.CallableStatement;
  6. import java.sql.PreparedStatement;
  7. import java.sql.ResultSet;
  8. import java.sql.SQLException;
  9. import org.apache.ibatis.type.BaseTypeHandler;
  10. import org.apache.ibatis.type.JdbcType;
  11. /**
  12. * className:ConvertBlobTypeHandler
  13. *
  14. * 自定义typehandler,解决mybatis存储blob字段后,出现乱码的问题
  15. * 配置mapper.xml:
  16. * <result  typeHandler="cn.ffcs.drive.common.util.ConvertBlobTypeHandler"/>
  17. *
  18. * @author pengyh
  19. * @version 1.0.0
  20. * @date 2014-07-09 11:15:23
  21. *
  22. */
  23. public class ConvertBlobTypeHandler extends BaseTypeHandler<String> {
  24. //###指定字符集
  25. private static final String DEFAULT_CHARSET = "utf-8";
  26. @Override
  27. public void setNonNullParameter(PreparedStatement ps, int i,
  28. String parameter, JdbcType jdbcType) throws SQLException {
  29. ByteArrayInputStream bis;
  30. try {
  31. //###把String转化成byte流
  32. bis = new ByteArrayInputStream(parameter.getBytes(DEFAULT_CHARSET));
  33. } catch (UnsupportedEncodingException e) {
  34. throw new RuntimeException("Blob Encoding Error!");
  35. }
  36. ps.setBinaryStream(i, bis, parameter.length());
  37. }
  38. @Override
  39. public String getNullableResult(ResultSet rs, String columnName)
  40. throws SQLException {
  41. Blob blob = rs.getBlob(columnName);
  42. byte[] returnValue = null;
  43. if (null != blob) {
  44. returnValue = blob.getBytes(1, (int) blob.length());
  45. }
  46. try {
  47. //###把byte转化成string
  48. return new String(returnValue, DEFAULT_CHARSET);
  49. } catch (UnsupportedEncodingException e) {
  50. throw new RuntimeException("Blob Encoding Error!");
  51. }
  52. }
  53. @Override
  54. public String getNullableResult(CallableStatement cs, int columnIndex)
  55. throws SQLException {
  56. Blob blob = cs.getBlob(columnIndex);
  57. byte[] returnValue = null;
  58. if (null != blob) {
  59. returnValue = blob.getBytes(1, (int) blob.length());
  60. }
  61. try {
  62. return new String(returnValue, DEFAULT_CHARSET);
  63. } catch (UnsupportedEncodingException e) {
  64. throw new RuntimeException("Blob Encoding Error!");
  65. }
  66. }
  67. @Override
  68. public String getNullableResult(ResultSet arg0, int arg1)
  69. throws SQLException {
  70. // TODO Auto-generated method stub
  71. return null;
  72. }
  73. }

定义上面类之后,在mapper.xml中配置<result property="content" column="CONTENT" typeHandler="cn.ffcs.drive.common.util.ConvertBlobTypeHandler"/>即可。

实体接收使用String接收。

转载自http://blog.csdn.net/p793049488/article/details/37818989

富文本框回显乱码问题解决相关推荐

  1. 关于微信小程序富文本编辑器回显数据初始化editor的时候,页面滑动到最底部了

    ** 一个页面高度超出一屏时,底部使用了富文本编辑器组件editor之后,如果在进入页面时对editor进行了赋值,页面会滚动到底部 控制页面不滚动到底部?** 这个问题的关键是进入页面给富文本赋值造 ...

  2. 富文本编辑器回显去掉<p></p>

    只需要在标签内用指令 v-html=" 需要回显的内容 " v-html是vue中内置的指令,可以解析html标签,在此行代码中可以配合字符串拼接实现您所需要的功能 实例: < ...

  3. ios html富文本分页,富文本框与分页

    1.富文本框javascript UEditor, CKEditor,wangEditor 市面用得比较多的富文本框html 使用是的wangEditor,要学习的话能够去看它的官网 -> ht ...

  4. django(7)modelform操作及验证、ajax操作普通表单数据提交、文件上传、富文本框基本使用...

    一.modelForm操作及验证 1.获取数据库数据,界面展示数据并且获取前端提交的数据,并动态显示select框中的数据 views.py from django.shortcuts importr ...

  5. php文本框长度限制,php截取富文本框中的固定长度的字符

    ai,哎怎么赶脚自己写东西越来越小儿科了呢,现在连这个问题都找了好半天 因为后台是的内容是富文本编辑器编辑的,前台我傻逼的直接截取了字符串,然后样式啥的都乱了,找了半天是因为富文本的问题 其实解决办法 ...

  6. PMEdit一个富文本框可以编辑文本、图片并可以显示GIF动画

    一.在开始之前首先吐槽一下,本人是一个独立开发者,在中国独立开发者就代表一个比较苦逼的行业,特别是对底层东西进行开发者,尤其本人研究方向是编译器.解析器基本上没有公司要,所以出来做个独立开发者.作为独 ...

  7. PMEdit一个富文本框可以编辑文本、并可以显示GIF动画

    PMEdit一个富文本框可以编辑文本.并可以显示GIF动画 发布时间:2013-04-14 发布来源: 护士必必要有同情心和一双愿意工作的手. 一.在开端之前起首吐槽一下,本人是一个自力开辟者,在中国 ...

  8. bootstrap前台富文本框的书写。

    首先砍一下效果图: 页面红色框处即为富文本框的一些格式化调整. 此处只贴富文本框处的代码: <div class="form-group"><label clas ...

  9. winForm中RichTextBox富文本框的使用

    创建一个RichTextBox控件 属性 a. 行为-EnableAutoDragDrop:True 允许拖拽 打开文件 先添加一个button按钮,注册单击事件表示打开某个文件 private vo ...

最新文章

  1. linux 别名管理,Linux 的 15 个命令行别名, 帮系统管理员提升工作效率!
  2. PowerDesigner对列增加注释
  3. JDK容器学习之ArrayList:底层存储和动态扩容
  4. OSX 10.8+下开启Web 共享 的方法
  5. Objective-C中的instancetype和id关键字
  6. final 在 java 中有什么作用?
  7. diybox路由器设置教程_家庭无线路由器怎么设置 家庭无线路由器设置教程【详细方法】...
  8. mysql 如何解决字段不区分大小写的问题
  9. 伺服电机常用参数设置_伺服驱动器重要参数的设置方法和技巧
  10. 用MUI花两天时间快速开发『One·一个』App,兼容Android、iOS双平台
  11. 2019年全国大学生电子设计竞赛赛题分享与浅析
  12. ps如何把自己的图与样机结合_如何用PS制作样机,并且看起来毫无痕迹
  13. “将就的人生,其实沉没成本非常高”
  14. Go学习笔记 -- 通道实现协程等待
  15. 小镇走出的大厂女程序员,也害怕努力后仍一无所获
  16. SAP 采购发票校验
  17. 齐二TK6916/20/26/32系列数控落地铣镗床简介7
  18. vue展示信息卡片_vue 个人中心会员卡片组件
  19. 为什么说社区团购小程序开发更有利于社区团购模式开展?
  20. 一、个人总结的菜鸟教程|sql教程的知识点(SQL教程)

热门文章

  1. SpringBoot整合Apache Thrift
  2. 云计算应用,需要满足哪些关键要求
  3. 软件测试——计算器加减乘除
  4. 第七章-微分方程习题
  5. CnOpenData中国高校发明申请专利基本信息数据
  6. Golang 操作单向链表的应用实例
  7. [原创]微信双开代码
  8. mysql初始化加载插件_Hapi+MySql项目实战配置插件-加载文件渲染母版(三)
  9. spring注入Map集合
  10. 致敬笔耕不辍的创作达人!图书作者专属勋章来了!!!