PrimeFaces Extensions CKEditor:尝试将编码设置为 UTF-8 失败



为什么我使用这个编辑器:

过去,我使用PrimeFacesp:editor但是它已被弃用并且缺少用户迫切需要的功能。我不能使用新的PrimeFacesp:textEditor,因为:Primefaces textEditor:使用JavaScript将文本转换为HTML,不起作用。

它的用途是什么:

我在我的程序中使用PrimeFaces Extensions的pe:ckEditor,其中用户使用编辑器来创建电子邮件内容。然后通过单击发送按钮,从编辑器中获取HTML并通过电子邮件发送到客户端。

问题是什么:

使用p:editor时,我得到了 HTML by JavaScript 函数saveHTML,即使文本包含捷克字符 (ěščřžýáíéó(,它也能完美运行,我什至不必设置 enconding 或其他任何东西,它就可以工作了。 然而,现在当用户写"V případě dalších dotazů se na nás můžete obracet každý den na telefonním čísle"时,gotten HTML的文本如下:">V pÅípadÄ dalších dotazÅ ̄ se na nás mÅ ̄Å3/4ete obracet kaÅ3/4dý den na telefonním Äísle">- 用户显然无法发送给客户端的完全垃圾...

我的研究:

编辑:根据一些评论,我试图添加<meta charset="utf-8><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">,但这没有帮助。pom.xml我也发现了这个<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>,所以我不认为HTML页面有问题,而是编辑器本身的设置......

所以我认为,编码必须特别针对编辑器在其配置中设置。我终于想出了如何让编辑器访问自定义配置,但我在互联网上找到并添加到配置中的任何内容都对我有用:

config.language='cs';

和:

config.entities_latin = false;

和:

config.entities = false;

和:

config.basicEntities = false;

以及它的所有组合。

另一个编辑:

根据这里的其他一些评论,我还安装了 OmniFaces 并试图通过CharacterEncodingFilter来解决这个问题,但没有任何变化,它仍然无法正常工作。

我还发现我的问题似乎与这个问题非常相关:通过PrimeFaces输入组件检索的Unicode输入已损坏,但是那里接受的答案给出了3种解决方法,一种是CharacterEncodingFilter,另一种方法不适用于Tomcat用户(我(,最后一个"解决方案"似乎将此报告给PrimeFaces Extensions开发人员(我做到了: https://github.com/primefaces-extensions/primefaces-extensions.github.com/issues/756(。

如果您知道如何解决此问题或是否有任何解决方法,请告诉我。


PrimeFaces 扩展 - 版本 7.0.2; PrimeFaces - 版本 7.0.7

我和我的同事根据@melloware提供的测试代码找出了问题所在。

原始编辑器p:editor,我们一直在使用并试图用pe:ckEditor替换它 ,只有在我们使用 JavaScript 函数的情况下,才能为我们提供 HTML 格式的内容saveHTML.

但是有了pe:ckEditor,每当用户点击发送按钮时,其onstart包含saveHTMLsaveHTML破坏了内容。一旦我们删除了saveHTML并按原样获取了pe:ckEditor内容(已经在 HTML 中(,没有损坏的字符就很好了。

相关内容

  • 没有找到相关文章

最新更新