You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含SJIS编码的RTF字符串渲染为HTML?求Java/JS方案

解决SJIS编码RTF网页渲染的方案

Java服务端方案

Apache POI HWPF(推荐)

Apache POI的HWPF模块专门针对RTF和旧版Word文档处理,能完美识别SJIS编码的字符,同时完整保留RTF中的字体颜色、样式、段落对齐、字体族等格式:

  • 操作步骤:
    1. 将数据库取出的SJIS编码RTF字符串,转换为Shift_JIS编码的字节数组
    2. 用ByteArrayInputStream包装字节数组,传入HWPFDocument加载RTF内容
    3. 初始化WordToHtmlConverter并关联Document对象,调用processDocument方法完成格式转换
    4. 将生成的HTML字符串输出到网页,即可实现带完整格式的渲染

修复JEditorPane的问题(备选)

如果坚持使用JEditorPane,可针对性解决乱码和对齐问题:

  • 乱码解决:将RTF字符串转为Shift_JIS编码的字节流,设置JEditorPane的contentType为text/rtf; charset=Shift_JIS,再通过read方法加载字节流
  • 对齐问题:JEditorPane默认HTML转换对部分RTF对齐标记支持不足,可自定义EditorKit扩展,或结合POI的转换结果补充格式

JavaScript客户端方案

rtf.js浏览器端解析

rtf.js是纯JS的RTF解析库,支持多编码(包括SJIS),能在浏览器端直接解析RTF并生成带格式的HTML:

  • 操作步骤:
    1. 将SJIS编码的RTF字符串转换为Uint8Array(对应SJIS编码的字节序列)
    2. 调用rtf.js的parse方法处理字节数组,获取解析后的文档结构
    3. 利用库自带的HTML生成工具,将文档结构转为HTML字符串
    4. 将HTML插入到页面的DOM容器中完成渲染

TinyMCE富文本编辑器导入

TinyMCE支持RTF字符串导入功能,可正确识别SJIS编码:

  • 操作步骤:
    1. 配置TinyMCE启用导入插件
    2. 调用tinymce.activeEditor.importContent方法传入RTF字符串
    3. 从编辑器中导出生成的HTML,插入到页面指定位置渲染

内容的提问来源于stack exchange,提问作者I.H.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 12:44:54