TinyMCE生成紧凑空间(ASCII中为160)(HEX中为0xA0)而不是

时间:2011-08-04 14:26:58

标签: tinymce

有没有人知道如何配置tinyMCE来利用& nbsp;而不是紧凑的空间?将数据存储在die db中会导致字符编码问题。我们目前正在利用tinyMCE发送电子邮件,当这些字符被发送时,它们会创建一堆问号,因为我们在电子邮件中使用的编码无法处理紧凑空间。

非常感谢任何帮助。

请参阅下面的代码片段

tinyMCE.init({
    // General options
    mode : "textareas",
    theme : "advanced",
    skin : "o2k7",
    plugins : "spellchecker,style,layer,table,advhr,inlinepopups,insertdatetime,print,contextmenu,fullscreen,noneditable,visualchars,xhtmlxtras,wordcount,advlist,paste,tabfocus",

    // Theme options
    theme_advanced_buttons1 : "newdocument,spellchecker,|,print,|,styleselect,formatselect,fontselect,fontsizeselect,|,fullscreen",
    theme_advanced_buttons2 : "bold,italic,underline,strikethrough,sub,sup,|,backcolor,forecolor,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,|,outdent,indent,|,insertdate,inserttime,|,code,|,showmorebuttons,",
    theme_advanced_buttons3 : "tablecontrols,|,insertlayer,moveforward,movebackward,absolute,|,styleprops,hr,removeformat,visualaid,|,charmap,advhr,",
    theme_advanced_toolbar_location : "top",
    theme_advanced_toolbar_align : "left",
    setup : function(ed) {
        // Add a custom button
        ed.addButton('showmorebuttons', {
            title : 'Expand Advanced Toolbar',
            image : '/img/email/toolbars.gif',
            onclick : function() {
                showMoreButtons(ed.id);
            }
        });
    },
    oninit : function(){
        var tmpIdent = tinyMCE.activeEditor.id;
        document.getElementById(tmpIdent + "_toolbar3").style.display = 'none';
        var currentHeight = document.getElementById(tmpIdent+"_ifr").style.height;
        currentHeight = currentHeight.substring(0, currentHeight.indexOf("px"));
        currentHeight = (currentHeight*1)+15;
        document.getElementById(tmpIdent+"_ifr").style.height=currentHeight+"px";
    },
    apply_source_formatting : false,
    force_p_newlines : false, 
    remove_linebreaks : false,
    forced_root_block : false,
    force_br_newlines : true,
    entity_encoding : "raw",
    // Example content CSS (should be your site CSS)
    content_css : "/tinymce/example/css/content.css",

    relative_urls : false,
    // Style formats
    style_formats : [
        {title : 'Word H1', block : 'h1', styles : {color : '#365f91', 'font-family' : 'cambria'}},
        {title : 'Word H2', block : 'h2', styles : {color : '#4f81bd', 'font-family' : 'cambria'}},
        {title : 'Word H3', block : 'h3', styles : {color : '#4f81bd', 'font-family' : 'cambria'}},
        {title : 'Word H4', block : 'h4', styles : {color : '#4f81bd', 'font-family' : 'cambria', "font-style" : "italic"}}
    ]
});

1 个答案:

答案 0 :(得分:0)

Tinymce需要插入受保护的空间(U + 00A0),因为没有它们,浏览器只显示一个单独的空间(您可以使用代码插件在tinymce中使用html来查看此行为)。这可能会导致您描述的问题。对此的一个解决方案可能是替换那些受保护的空间onSaveContent或在将内容发送到服务器之前。第二种方法是在服务器端进行替换。