Ckeditor “编辑更改字符”š&引用;至&;斯卡龙&引用;来源

Ckeditor “编辑更改字符”š&引用;至&;斯卡龙&引用;来源,ckeditor,Ckeditor,对于我的站点,我正在使用CKeditor添加/编辑内容,我注意到当我在源代码中编写字符时,它被更改为&scaron-当我在数据库中搜索时,这会导致问题,因此我想知道如何修复此问题,以便该字符以相同的方式写入源代码(未更改) 我可以通过将此添加到配置来修复此问题: config.entities = false; 但是有了这个,一切都被禁用了(甚至连引号、双引号……现在在源代码中都没有更改),所以这不是最好的解决方案,对吗 我也尝试过这些设置,但它们没有帮助: config.IncludeGre

对于我的站点,我正在使用CKeditor添加/编辑内容,我注意到当我在源代码中编写字符时,它被更改为
&scaron-当我在数据库中搜索时,这会导致问题,因此我想知道如何修复此问题,以便该字符以相同的方式写入源代码(未更改)

我可以通过将此添加到配置来修复此问题:

config.entities = false;
但是有了这个,一切都被禁用了(甚至连引号、双引号……现在在源代码中都没有更改),所以这不是最好的解决方案,对吗

我也尝试过这些设置,但它们没有帮助:

config.IncludeGreekEntities = false;
config.IncludeLatinEntities = false;

我还能试什么?有没有办法手动设置某些字符不应被转换?

如果这导致搜索实现出现问题,则不仅是“š”字符会成为问题,而且所有特殊字符都可能用于搜索。我不认为CKEditor有一个不应该被编码的白名单实体的配置

我建议在从CKEditor获取数据后解码这些字符,如:

var map = { 'š': 'š', 'à': 'à' };
editor.getData().replace( /š|à/g, function( m ) { return map[ m ] } );
----编辑:

要将其与CKEditor集成,可以使用事件:


请参阅。

此命令似乎有效,我不再有
&scaron(其他特殊字符仍在转换-如quote,这很好):


仅从ckeditor.js源代码中删除了“scaron”和“scaron”。

您希望对字符进行选择性编码的原因是什么?只有一些用于在数据库中搜索?由于这是一个与输出严格相关的问题,也许可以使用CKEditor之外的一些转换(在获取内容之后)?问题在于字符“š”-在数据库中存储为š搜索在网站上不起作用(没有结果显示任何包含“š”的单词)。我应该把这段代码放在哪里?我在config.js和加载CKeditor的to js中进行了尝试,但在这两种情况下都不起作用。@SilverNumber我已经更新了我的答案,说明了如何将其与CKeditor集成。出于某种原因,我的CK编辑器忽略了toDataFormat-可能是其他原因导致了一些错误,我将进行检查,并希望它能够正常工作,因为它已经启动在codepen上工作。谢谢。你应该在哪里寻找“scaron”?不清楚这篇文章应该贡献什么。它看起来不像一个答案,其他任何东西都不适合作为答案。看看这是否是你需要的答案[edit9]这样做是为了让这个问题的回答更加明确。坦率地说,我得到的印象是,你基本上说“我也是,现在解决了,谢谢。”。
var editor = CKEDITOR.replace( 'editor1' ),
    map = { 'š': 'š', 'à': 'à' };

editor.on( 'toDataFormat', function( evt ) {
    evt.data.dataValue = evt.data.dataValue.replace( /š|à/g, function( m ) { return map[ m ] } );
}, null, null, 16 );
CKEDITOR.config.entities_latin = false;