PrimeFaces扩展CKEditor:尝试将编码设置为UTF-8不成功

问题描述 投票:3回答:1

为什么使用此编辑器:

过去,我使用的PrimeFaces p:editor已过时,并且缺少用户迫切需要的功能。由于以下原因,我无法使用新的PrimeFaces p:editorp:textEditor

它的用途是:

我正在程序中使用PrimeFaces Extensions中的p:textEditor,在该程序中,用户使用编辑器来创建电子邮件内容。然后,通过单击发送按钮,获取来自编辑器的HTML,并通过电子邮件将其发送给客户端。

问题是什么:

[使用Primefaces textEditor: converting text to HTML with JavaScript not working时,我通过JavaScript函数pe:ckEditor获得了HTML,即使文本包含捷克字符(ěščřžýáíéó),它也可以正常工作,我什至不必设置编码或其他任何内容,它就可以工作。现在,当用户编写“ VpáípadÄdalšíchdotazůse nanásmůžeteobracetkaždýden na telefonnmčísle”时,获得的HTML内容如下: “”>-完全垃圾,用户显然无法将其发送给客户端...我的研究:

编辑:基于一些评论,我尝试添加pe:ckEditorp:editor,但这无济于事。在saveHTML中我也找到了这个<meta charset="utf-8>,所以我认为HTML页面中没有问题,但是编辑器本身的设置中有问题...

所以我想,必须特别为编辑器的配置设置编码。我终于找到了<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">,但是

我在Internet上找不到并添加到配置中的所有内容都对我有用:

pom.xml
和:

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

和:

how to make the editor access the custom config

和:

config.language='cs';

及其所有组合。

另一个编辑:

基于此处的其他评论,我还安装了OmniFaces并尝试通过config.entities_latin = false; 解决此问题,但没有任何更改,它仍然无法正常工作。

[我还发现我的问题似乎与以下问题非常相关:config.entities = false; ,但是那里公认的答案给出了3种解决方法,一种是config.basicEntities = false; ,另一种不适用于Tomcat用户。 (我)和最后一个“解决方案”似乎正在向PrimeFaces Extensions开发人员报告此问题(我做了:CharacterEncodingFilter。)>

如果您知道该如何解决或有任何解决方法,请让我知道。


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

为什么使用此编辑器:过去我使用PrimeFaces p:editor,但已过时,并且缺少用户急需的功能。我不能使用新的PrimeFaces p:textEditor ...

jsf primefaces character-encoding ckeditor primefaces-extensions
1个回答
3
投票
我和我的同事根据CharacterEncodingFilter找出了问题所在。我们一直在使用的原始编辑器Unicode input retrieved via PrimeFaces input components become corrupted,正试图用CharacterEncodingFilter替换,只有在使用JavaScript函数https://github.com/primefaces-extensions/primefaces-extensions.github.com/issues/756的情况下,才能向我们提供HTML格式的内容。但是使用test code that @melloware provided时,只要用户单击

Send

按钮(其p:editor包含pe:ckEditor),saveHTML都会破坏内容。一旦我们删除了pe:ckEditor
© www.soinside.com 2019 - 2024. All rights reserved.