0 0

富文本编辑器存储内容还原5

使用wysiwyg编辑器,把数据保存到数据库中了,然后想回显回来,结果只能看到html代码的字符串。前辈们,谁知道怎么解决啊。谢谢!



例如:
保存前
--------------------------------------------
这是怎么回事?

求解!!


保存后显示时
-------------------------------------------------
这是怎么回事?<div><br></div><div>求解!!</div>



图片也只是显示地址和内容。
2014年4月24日 18:10

5个答案 按时间排序 按投票排序

0 0

看看你保存的内容是什么,一般富文本编辑器保存的时候保存的是html代码。而我们再要把这些内容回显到编辑器中时,一般都调用的是编辑器的本身的方法,比如“editor.setContent(content)”。而这时content是HTML代码(含有大量的单引号和双引号),会造成代码混淆。所以一般把从库里读出来的HTML代码进行一下Unicode编码,然后把编码后的值赋给编辑器。

简单示例一下,在jsp页面上:

 
<% 
Article article = (ArticleDto)request.getAttribute("article");
String content = (article == null) ? "" : article.getContent();
content = UnicodeFormatter.toString(content);
%>

<script type="text/javascript">
 editor.setContent(con);
</script>

这只是一段伪代码。

UnicodeFormatter类的代码给你参考:
public class UnicodeFormatter {
	private static Logger log = LoggerFactory.getLogger(UnicodeFormatter.class);

	/** Unicode编码前缀 */
	private static final String _UNICODE_PREFIX = "\\u";

	/** 十六进制字符 */
	private static final char[] _HEX_DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };

	/**
	 * 将一个byte转成十六进制格式的字符串
	 * 
	 * @param b
	 * @return
	 */
	public static String byteToHex(byte b) {
		char[] array = { _HEX_DIGITS[(b >> 4) & 0x0f], _HEX_DIGITS[b & 0x0f] };

		return new String(array);
	}

	/**
	 * 将一个普通字符转为十六进制格式的字符串
	 * 
	 * @param c
	 * @return
	 */
	public static String charToHex(char c) {
		byte hi = (byte) (c >>> 8);
		byte lo = (byte) (c & 0xff);

		char[] array = { _HEX_DIGITS[(hi >> 4) & 0x0f], _HEX_DIGITS[hi & 0x0f], _HEX_DIGITS[(lo >> 4) & 0x0f],
				_HEX_DIGITS[lo & 0x0f] };

		return new String(array);
	}

	/**
	 * 将Unicode编码的字符串解析成普通格式字符串
	 * 
	 * @param hexString
	 * @return
	 */
	public static String parseString(String hexString) {
		StringBuilder sb = new StringBuilder();

		char[] array = hexString.toCharArray();

		if ((array.length % 6) != 0) {
			log.error("String is not in hex format");

			return hexString;
		}

		for (int i = 2; i < hexString.length(); i = i + 6) {
			String s = hexString.substring(i, i + 4);

			try {
				char c = (char) Integer.parseInt(s, 16);

				sb.append(c);
			} catch (Exception e) {
				log.error("Parse error, " + e);

				return hexString;
			}
		}

		return sb.toString();
	}

	/**
	 * 字符数组转为转成Unicode编码的字符串
	 * 
	 * @param array
	 * @return
	 */
	public static String toString(char[] array) {
		StringBuilder sb = new StringBuilder(array.length * 6);

		char[] hexes = new char[4];

		for (int i = 0; i < array.length; i++) {
			sb.append(_UNICODE_PREFIX);
			sb.append(_charToHex(array[i], hexes));
		}

		return sb.toString();
	}

	/**
	 * 将字符串转成Unicode编码的字符串
	 * 
	 * @param s
	 * @return
	 */
	public static String toString(String s) {
		if (s == null) {
			return null;
		}

		StringBuilder sb = new StringBuilder(s.length() * 6);

		char[] hexes = new char[4];

		for (int i = 0; i < s.length(); i++) {
			sb.append(_UNICODE_PREFIX);
			sb.append(_charToHex(s.charAt(i), hexes));
		}

		return sb.toString();
	}

	// char在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。
	private static char[] _charToHex(char c, char[] hexes) {
		byte hi = (byte) (c >>> 8);
		byte lo = (byte) (c & 0xff);

		hexes[0] = _HEX_DIGITS[(hi >> 4) & 0x0f];
		hexes[1] = _HEX_DIGITS[hi & 0x0f];
		hexes[2] = _HEX_DIGITS[(lo >> 4) & 0x0f];
		hexes[3] = _HEX_DIGITS[lo & 0x0f];

		return hexes;
	}

	public static void main(String[] args) {
		String test = "abc123@汉字αβあにキКЖ÷⑥";

		String u = UnicodeFormatter.toString(test);
		System.out.println(u);
		System.out.println(UnicodeFormatter.parseString(u));
		System.out.println(UnicodeFormatter.toString("\n"));
	}

}



2014年4月27日 15:34
0 0

去看看ueditor是怎么处理的

2014年4月26日 23:10
0 0

你可以用去HTML的正则把标签干掉

2014年4月26日 01:02
0 0

用textarea 就行,我之前的项目就是用的富文本编辑框保存的,然后用textarea解析的

2014年4月25日 13:24
0 0

因为你用的是富文本编辑框,里面会有段落什么的html文件代码,你保存的时候自然会把html代码一起保存,所有显示的话会根据你保存时候的样式的显示,现在又两种办法,一,你不用富文本保存,二显示的时候也用富文本或者textarea,我没用过wysiwyg,之前用过kindeditor

2014年4月25日 10:46

相关推荐

    富文本编辑器组件.rar

    在Web开发领域,富文本编辑器扮演着至关重要的角色,因为它们为用户提供了一种方便的方式来创建复杂的内容,如文章、博客、论坛帖子等。本压缩包文件“富文本编辑器组件.rar”很可能包含一个或多个用于构建这种功能...

    ios-富文本编辑.zip

    "ios-富文本编辑.zip" 文件提供了一个简陋但基础的富文本编辑实现,可能是为了帮助开发者快速理解和构建自己的富文本编辑器。这里我们将深入探讨iOS中的富文本编辑技术及其相关知识点。 1. **CoreText框架**:在iOS...

    带丰富表情的文本编辑器

    【标题】"带丰富表情的文本编辑器"揭示了我们讨论的主题是一款专为增强文本编辑体验而设计的应用程序。这款编辑器不仅限于基础的文字输入,而是提供了丰富的表情功能,使得用户在创建内容时能够更好地表达情感和意图...

    swift-iOS富文本编辑

    在iOS应用开发中,Swift语言提供了强大的富文本编辑功能,使得开发者可以创建具有复杂格式的文本,如不同颜色、字体、大小甚至嵌入图像。这个主题主要围绕“Swift-iOS富文本编辑”,我们将深入探讨Swift如何实现文本...

    仿简书富文本编辑器

    【描述】"仿简书富文本编辑器,完美重现"强调了该编辑器在功能和用户体验上的高度还原。简书编辑器以其简洁、易用而受到许多用户的喜爱,因此,这款编辑器旨在复制其核心特性和界面设计,使用户在Android设备上也能...

    RichEditor富文本eclipse版

    富文本编辑器(RichEditor)在软件开发中是一种常见的组件,它允许用户创建包含格式化文本、图片、链接等内容的文档。在Android开发领域,为了在应用程序中实现这样的功能,开发者通常会借助第三方库。本项目是专门...

    summernote富文本框整合图片上传和删除

    在IT行业中,富文本编辑器是一种常见的用于网页内容编辑的工具,它允许用户在类似Word的界面中输入、格式化和编辑文本。Summernote是一款流行的开源富文本编辑器,以其简洁的界面和强大的功能而受到开发者的青睐。...

    自己开发HTML编辑器一文源代码2

    综上所述,开发一个HTML编辑器涉及的知识点包括HTML5的`contenteditable`属性、事件处理、富文本与HTML代码的转换、安全过滤以及操作历史管理等。通过分析“RichTextEditor”这个源代码,我们可以深入了解这些概念的...

    富文本解析,折线图,MD5,bluebird

    在网页设计中,富文本常用于内容编辑器,例如WYSIWYG(所见即所得)编辑器,允许用户在网页上创建和编辑格式化的文本。富文本解析通常涉及HTML或Markdown语言,这些语言可以被浏览器理解和渲染。在JavaScript中,...

    用Mobiledoc构建WYSIWYG编辑器的一个工具包

    总结来说,`bustle-mobiledoc-kit`是一个强大的工具,它简化了富文本编辑器的开发过程,通过使用Mobiledoc数据结构,提供了灵活的内容表示和编辑能力。通过深入学习和实践,你可以构建出满足各种需求的高性能、可...

    基于vue和element-ui实现的表单设计器 通过拖拽方式快速生成一个表单页面

    基于vue和element-ui实现的表单设计器。通过拖拽方式快速生成一个...支持表单预览模式,表单内容全部非组件化,全部文本显示。针对选择性控件(radio,select,checkbox)选择后将对应的label进行单独存储,方便展示

    可以上传中文图片的FCK编辑器插件

    FCK编辑器是一款广泛使用的开源富文本编辑器,它允许用户在网页上创建和编辑内容,类似于Microsoft Word的功能。在默认设置下,FCK编辑器只支持上传文件名由数字或字母组成的图片,这在一定程度上限制了其在中国语境...

    FreeTextBox免费

    综上所述,FreeTextBox是ASP.NET开发中一个强大且实用的富文本编辑器,它提供了一系列的编辑工具,使非技术用户也能方便地创建和编辑网页内容。同时,开发者可以通过其丰富的API和扩展机制进行定制,以适应各种项目...

    fckEditor在java中的应用

    综上所述,FCKEditor在Java中的应用涉及前端编辑器的配置、后台数据处理以及可能的自定义扩展,是实现Web应用富文本编辑功能的重要工具。了解并熟练掌握FCKEditor的使用,能有效提升Web开发的效率和用户体验。

    TextControlSource

    "TextControlSource"是一个专为C/S(客户端/服务器)架构设计的文本编辑器组件,其核心功能在于处理和管理包含文字与图片的富文本内容。这个编辑器能够将用户编辑的文字和图片转换成HTML格式,以便于在服务器端进行...

    【最新版】GitNote_setup_3.1.0.dmg【亲测可用】最好的基于GIT的现代笔记应用程序

    富文本编辑器,不仅支持各种复杂的文本编辑,还支持快捷键,公式,语法突出显示,Todo,图像粘贴等。 它不仅是一个漂亮的markdown编辑器,而且还支持为演示文稿编写幻灯片的功能。 不仅支持各种文件作为附件,而且还...

    鹅毛笔

    "鹅毛笔"在这里可能指的是一个名为"Quill"的开源富文本编辑器项目,它在编程领域中常被用于创建具有高度定制性和交互性的在线文本编辑器。Quill最初可能是由JavaScript开发,允许用户在网页上进行类似Word的文本编辑...

    Archivo Zip_Correos_zip_MUSICA_源码

    用户可以通过文本编辑器查看邮件内容,并使用音频播放软件播放音乐。如果存在源代码,它可能需要在其他地方寻找。这样的组合可能适用于多种场景,比如个人文件备份、项目协作或者简单的数据传输。

    wpf操作richTextBox

    它支持复杂的文本布局、样式和流文档,使得开发人员能够轻松地创建富文本编辑器。 #### 二、获取RichTextBox中的内容 ##### 1.1 直接通过XAML格式获取 ```csharp string xw = System.Windows.Markup.XamlWriter....

    customattributes-ckeditor-plugin

    在Web开发中,CKEditor是一款广泛应用的富文本编辑器,它提供了丰富的功能和高度的可定制性,使得网页内容编辑变得更加便捷和专业。而`customattributes-ckeditor-plugin`正是针对CKEditor的一款自定义属性插件,它...

Global site tag (gtag.js) - Google Analytics