RadEditor converting Greek characters to their html entities!

16 posts, 0 answers
  1. Yannis
    Yannis avatar
    4 posts
    Member since:
    Jun 2010

    Posted 09 Jun 2010 Link to this post

    Hello everybody,
    I'm using radEditor and I noticed that when I type characters in the Greek language it converts them to their html entities. Is there a preference of some kind to avoid this behaviour? I want the editor to insert the actual unicode characters.

    Thank you in advance,
    Yannis Develekos

  2. Rumen
    Admin
    Rumen avatar
    12597 posts
    Member since:
    Sep 2012

    Posted 09 Jun 2010 Link to this post

    Hi Yannis,

    There is a new content filter in the latest version of RadEditor named ConvertCharactersToEntities which converts the special characters to entities. You can disable it by setting

    RadEditor1.DisableFilter(Telerik.Web.UI.EditorFilters.ConvertCharactersToEntities);

    in the codebehind. You can test how the content filters work in this live demo: Built-in Content Filters.

    Greetings,
    Rumen
    the Telerik team


    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.

  3. Yannis
    Yannis avatar
    4 posts
    Member since:
    Jun 2010

    Posted 09 Jun 2010 Link to this post

    Hi Rumen,
    Thanks for the super fast responce. I will give it a try.

    Greetings,
    Yannis

  4. Yannis
    Yannis avatar
    4 posts
    Member since:
    Jun 2010

    Posted 07 Jul 2010 Link to this post

    Hi Rumen,
    Just wanted to know... If I disable the ConvertCharactersToEntities filter it will not convert anything at all. If I wanted to instruct the editor to stop converting just the characters of the Greek language would it be possible? For example CKEditor has something like that:

    config.entities_greek = false; 

    Is this possible?

    Regards,
    Yannis

  5. Rumen
    Admin
    Rumen avatar
    12597 posts
    Member since:
    Sep 2012

    Posted 08 Jul 2010 Link to this post

    Hi Yannis,

    RadEditor does not offer this feature, but if more users request it we will implement it.

    Currently, you can create your own custom filter that will contains only the desired symbols that you want to convert to their entities:

    <telerik:radeditor OnClientLoad="OnClientLoad" runat="server" ID="RadEditor1"></telerik:radeditor>
    <script type="text/javascript">
    function OnClientLoad(editor, args)
    {
       editor.get_filtersManager().add(new MyFilter());
    }
     
    MyFilter = function()
    {
        MyFilter.initializeBase(this);
        this.set_isDom(false);
        this.set_enabled(true);
        this.set_name("ConvertCharactersToEntities");
        this.set_description("This filter converts reserved characters to their html entity names.");
        this.entities = {
            'euro': '\u20ac', 'cent': '\u00a2', 'pound': '\u00a3', 'yen': '\u00a5', 'sect': '\u00a7', 'copy': '\u00a9', 'reg': '\u00ae', 'plusmn': '\u00b1', 'ne': '\u2260',
            'asymp': '\u2248', 'le': '\u2264', 'ge': '\u2265', 'divide': '\u00f7', 'times': '\u00d7', 'iexcl': '\u00a1', 'curren': '\u00a4', 'brvbar': '\u00a6', 'uml': '\u00a8',
            'ordf': '\u00aa', 'trade': '\u2122', 'larr': '\u2190', 'uarr': '\u2191', 'rarr': '\u2192', 'darr': '\u2193', 'harr': '\u2194', 'crarr': '\u21b5', 'lArr': '\u21d0', 'uArr': '\u21d1',
            'rArr': '\u21d2', 'dArr': '\u21d3', 'hArr': '\u21d4', 'loz': '\u25ca', 'spades': '\u2660', 'clubs': '\u2663', 'hearts': '\u2665', 'diams': '\u2666', 'forall': '\u2200',
            'part': '\u2202', 'exist': '\u2203', 'empty': '\u2205', 'nabla': '\u2207', 'isin': '\u2208', 'notin': '\u2209', 'ni': '\u220b', 'prod': '\u220f', 'sum': '\u2211', 'minus': '\u2212',
            'lowast': '\u2217', 'radic': '\u221a', 'prop': '\u221d', 'ang': '\u2220', 'and': '\u2227', 'or': '\u2228', 'cap': '\u2229', 'cup': '\u222a', 'int': '\u222b', 'there4': '\u2234',
            'sim': '\u223c', 'cong': '\u2245', 'equiv': '\u2261', 'sub': '\u2282', 'sup': '\u2283', 'nsub': '\u2284', 'sube': '\u2286', 'supe': '\u2287', 'oplus': '\u2295', 'otimes': '\u2297',
            'perp': '\u22a5', 'sdot': '\u22c5', 'laquo': '\u00ab', 'not': '\u00ac', 'macr': '\u00af', 'deg': '\u00b0', 'sup2': '\u00b2', 'sup3': '\u00b3', 'acute': '\u00b4', 'micro': '\u00b5',
            'para': '\u00b6', 'middot': '\u00b7', 'cedil': '\u00b8', 'sup1': '\u00b9', 'ordm': '\u00ba', 'raquo': '\u00bb', 'frac14': '\u00bc', 'frac12': '\u00bd', 'frac34': '\u00be', 'iquest': '\u00bf',
            'Agrave': '\u00c0', 'Aacute': '\u00c1', 'Acirc': '\u00c2', 'Atilde': '\u00c3', 'Auml': '\u00c4', 'Aring': '\u00c5', 'AElig': '\u00c6', 'Ccedil': '\u00c7', 'Egrave': '\u00c8', 'Eacute': '\u00c9',
            'Ecirc': '\u00ca', 'Euml': '\u00cb', 'Igrave': '\u00cc', 'Iacute': '\u00cd', 'Icirc': '\u00ce', 'Iuml': '\u00cf', 'ETH': '\u00d0', 'Ntilde': '\u00d1', 'Ograve': '\u00d2', 'Oacute': '\u00d3',
            'Ocirc': '\u00d4', 'Otilde': '\u00d5', 'Ouml': '\u00d6', 'Oslash': '\u00d8', 'Ugrave': '\u00d9', 'Uacute': '\u00da', 'Ucirc': '\u00db', 'Uuml': '\u00dc', 'Yacute': '\u00dd', 'THORN': '\u00de',
            'szlig': '\u00df', 'agrave': '\u00e0', 'aacute': '\u00e1', 'acirc': '\u00e2', 'atilde': '\u00e3', 'auml': '\u00e4', 'aring': '\u00e5', 'aelig': '\u00e6', 'ccedil': '\u00e7', 'egrave': '\u00e8',
            'eacute': '\u00e9', 'ecirc': '\u00ea', 'euml': '\u00eb', 'igrave': '\u00ec', 'iacute': '\u00ed', 'icirc': '\u00ee', 'iuml': '\u00ef', 'eth': '\u00f0', 'ntilde': '\u00f1', 'ograve': '\u00f2',
            'oacute': '\u00f3', 'ocirc': '\u00f4', 'otilde': '\u00f5', 'ouml': '\u00f6', 'oslash': '\u00f8', 'ugrave': '\u00f9', 'uacute': '\u00fa', 'ucirc': '\u00fb', 'uuml': '\u00fc', 'yacute': '\u00fd',
            'thorn': '\u00fe', 'yuml': '\u00ff', 'fnof': '\u0192', 'Alpha': '\u0391', 'Beta': '\u0392', 'Gamma': '\u0393', 'Delta': '\u0394', 'Epsilon': '\u0395', 'Zeta': '\u0396', 'Eta': '\u0397',
            'Theta': '\u0398', 'Iota': '\u0399', 'Kappa': '\u039a', 'Lambda': '\u039b', 'Mu': '\u039c', 'Nu': '\u039d', 'Xi': '\u039e', 'Omicron': '\u039f', 'Pi': '\u03a0', 'Rho': '\u03a1',
            'Sigma': '\u03a3', 'Tau': '\u03a4', 'Upsilon': '\u03a5', 'Phi': '\u03a6', 'Chi': '\u03a7', 'Psi': '\u03a8', 'Omega': '\u03a9', 'alpha': '\u03b1', 'beta': '\u03b2', 'gamma': '\u03b3',
            'delta': '\u03b4', 'epsilon': '\u03b5', 'zeta': '\u03b6', 'eta': '\u03b7', 'theta': '\u03b8', 'iota': '\u03b9', 'kappa': '\u03ba', 'lambda': '\u03bb', 'mu': '\u03bc', 'nu': '\u03bd',
            'xi': '\u03be', 'omicron': '\u03bf', 'pi': '\u03c0', 'rho': '\u03c1', 'sigmaf': '\u03c2', 'sigma': '\u03c3', 'tau': '\u03c4', 'upsilon': '\u03c5', 'phi': '\u03c6', 'chi': '\u03c7', 'psi': '\u03c8',
            'omega': '\u03c9', 'thetasym': '\u03d1', 'upsih': '\u03d2', 'piv': '\u03d6', 'bull': '\u2022', 'hellip': '\u2026', 'prime': '\u2032', 'Prime': '\u2033', 'oline': '\u203e', 'frasl': '\u2044',
            'weierp': '\u2118', 'image': '\u2111', 'real': '\u211c', 'alefsym': '\u2135', 'lceil': '\u2308', 'rceil': '\u2309', 'lfloor': '\u230a', 'rfloor': '\u230b', 'lang': '\u2329', 'rang': '\u232a',
            'OElig': '\u0152', 'oelig': '\u0153', 'Scaron': '\u0160', 'scaron': '\u0161', 'Yuml': '\u0178', 'circ': '\u02c6', 'tilde': '\u02dc', 'ensp': '\u2002', 'emsp': '\u2003', 'thinsp': '\u2009', 'zwnj': '\u200c',
            'zwj': '\u200d', 'lrm': '\u200e', 'rlm': '\u200f', 'ndash': '\u2013', 'mdash': '\u2014', 'lsquo': '\u2018', 'rsquo': '\u2019', 'sbquo': '\u201a', 'ldquo': '\u201c', 'rdquo': '\u201d', 'bdquo': '\u201e',
            'dagger': '\u2020', 'Dagger': '\u2021', 'permil': '\u2030', 'lsaquo': '\u2039', 'rsaquo': '\u203a'
        };
    }
     
    MyFilter.prototype =
    {
        getHtmlContent: function(content)
        {
            var regExp = this.createRegEx();
            var entities = this.entities;
            var newContent = content + "";
            newContent = newContent.replace(regExp, function(match, offset, fullText)
            {
                for (var entity in entities)
                {
                    if (entities[entity] == match)
                    {
                        return "&" + entity + ";";
                    }
                }
                return match;
            });
            return newContent;
        },
     
        createRegEx: function()
        {
            var str = "[";
            var entities = this.entities;
            for (var entity in entities)
            {
                str += entities[entity];
            }
            str += "]";
            return new RegExp(str, "g");
        }
    }
     
    MyFilter.registerClass('Telerik.Web.UI.Editor.ConvertCharactersToEntities', Telerik.Web.UI.Editor.Filter);
    </script>


    Best regards,
    Rumen
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items

  6. Aristotelis Pitaridis
    Aristotelis Pitaridis avatar
    2 posts
    Member since:
    Jan 2010

    Posted 29 Oct 2010 Link to this post

    I have the same problem but my RadEditor is part of the ItemTemplate inside a RadGrid. How can I apply this command in this case?

  7. Rumen
    Admin
    Rumen avatar
    12597 posts
    Member since:
    Sep 2012

    Posted 29 Oct 2010 Link to this post

    Hello Aristotelis Pitaridis,


    Here is an example on how to get a reference to RadEditor placed in ItemDataBound of RadGrid:

    protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
    {
        if ((e.Item is GridEditableItem) && (e.Item.IsInEditMode))
        {
             GridEditableItem edititem = e.Item as GridEditableItem;
             RadEditor radEditor = e.Item.FindControl("RadEditor1") as RadEditor;
             radEditor.OnClientLoad = "OnClientLoad";
        }
    }

    After that attach the OnClientLoad function to the OnClientLoad property of RadEditor and make sure that the JavaScript OnClientLoad function is available on the page when the editor is displayed on the page.


    Best regards,
    Rumen
    the Telerik team

    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items

  8. Aristotelis Pitaridis
    Aristotelis Pitaridis avatar
    2 posts
    Member since:
    Jan 2010

    Posted 30 Oct 2010 Link to this post

    Thank you Rumen for your reply but I think that I found a better way to handle it. My code is the following:

    Protected Sub grdArticles_ItemCreated(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs)
        If (TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode) Then
            Dim item As Telerik.Web.UI.GridEditFormItem = e.Item
            Dim MyRadEditor As RadEditor = item("Article").FindControl("ArticleRadEditor")
            MyRadEditor.DisableFilter(Telerik.Web.UI.EditorFilters.ConvertCharactersToEntities)
        End If
    End Sub

    Article is the field in which I have placed the RadEditor control and ArticleRadEditor is the name of the control. In my project it works fine. Please correct me if I have made some kind of mistake in my code.

  9. Rumen
    Admin
    Rumen avatar
    12597 posts
    Member since:
    Sep 2012

    Posted 01 Nov 2010 Link to this post

    Hello Aristotelis,

    Your way is fine and you can use it to achieve your goal.


    Best regards,
    Rumen
    the Telerik team

    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items

  10. Baldwin
    Baldwin avatar
    4 posts
    Member since:
    Aug 2008

    Posted 16 Feb 2011 Link to this post

    How to fit the same issue for DNN RadEditor? I can't find where to place the javascript code. Any help will appreciated much.

    Kind regards
    Baldwin

  11. Rumen
    Admin
    Rumen avatar
    12597 posts
    Member since:
    Sep 2012

    Posted 21 Feb 2011 Link to this post

    Hello Baldwin,

    You can see how to executing custom code called on RadEditor's events in DNN in the following KB article: Executing custom code called on RadEditor's events. This solution works only for RadEditor DNN provider provided by Telerik.

    If you use the Professional DNN provider of RadEditor, you should note that it is implementation of the DNN developers and it is not supported by Telerik. Our suggestion is to post the question about how to register the external skin files of RadEditor in DNN in the DNN forums. For example in this one: Taming (customizing) The new Telerik RadEditor.


    Kind regards,
    Rumen
    the Telerik team

    Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!

  12. Baldwin
    Baldwin avatar
    4 posts
    Member since:
    Aug 2008

    Posted 24 Feb 2011 Link to this post

    Thanks for your quick response.
    But try to fix the issue with following the tutorial but no luck. The greek characters aren't rendered correctly.

    For example, the sentence "Για να δουμε πως πα?ζει Ελληνικ?" will render "<p>&Gamma;&iota;&alpha; &nu;&alpha; &delta;&omicron;&upsilon;&mu;&epsilon; &pi;&omega;&sigmaf; &pi;&alpha;?&zeta;&epsilon;&iota; &Epsilon;&lambda;&lambda;&eta;&nu;&iota;&kappa;?</p>" in the HTMl mode. Any advice will be appreciated much.

  13. Rumen
    Admin
    Rumen avatar
    12597 posts
    Member since:
    Sep 2012

    Posted 01 Mar 2011 Link to this post

    Hi Wangji,

    Did you try to disable the ConvertCharactersToEntities filter of RadEditor which converts the Greek symbols to entities? Open the configuration file and remove the ConvertCharactersToEntities string from the ContentFilters enum values:

    <configuration>
      <property name="Skin">Default</property>
      <property name="NewLineBr">false</property>
      <property name="ContentFilters">EncodeScripts,FixUlBoldItalic,ConvertToXhtml,IECleanAnchors,MozEmStrong,IndentHTMLContent</property>
    ...

    Kind regards,
    Rumen
    the Telerik team

    Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!

  14. Baldwin
    Baldwin avatar
    4 posts
    Member since:
    Aug 2008

    Posted 01 Mar 2011 Link to this post

    Thanks a lot for your help. It works well for us. Also I noted the issue in the post - Fixed RadEditor Issue with Converting Greek Characters to Html Entities. Hope it helps for somebody.

  15. Yannis
    Yannis avatar
    4 posts
    Member since:
    Jun 2010

    Posted 01 Mar 2011 Link to this post

    I believe that disabling the filter is not the best solution. This disables the conversion of symbols to entities which is not what everybody wants. I think that the problem is that the filter assumes that the letters of the greek alphabet are symbols. They are not. It's a language and the filter should not convert them at all. So I would like to be able in a future version to leave the filter on and leave the greek characters as is.

    Yannis

  16. Rumen
    Admin
    Rumen avatar
    12597 posts
    Member since:
    Sep 2012

    Posted 03 Mar 2011 Link to this post

    Hi Yannis,

    Thank you for your feature request.

    We will discuss your suggestion on the next RadEditor's meeting and decide whether to remove the Greek symbols from the filter.

    All the best,
    Rumen
    the Telerik team

    Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!

Back to Top