0

我正在尝试使用 TinyMCE 5.06 版本插入表情符号,但插入时出现错误。当我在 Asp.Net MVC 中使用 Html.Raw() 时,没有出现表情符号。它看起来像这样“????”。我怎样才能解决这个问题 ?

  //tinymce plugin and toolbar options
        $scope.tinymceOptions = {
            selector: '#post',         
            plugins: [
               "advlist autolink autoresize link image fullscreen  lists charmap paste print preview hr anchor pagebreak",
                "searchreplace wordcount visualblocks visualchars insertdatetime media nonbreaking wordcount  ",
                "table contextmenu directionality emoticons paste template spellchecker searchreplace help imagetools media "
            ], 
            mobile: {
                theme: "mobile",
                plugins: [ 'autosave', 'lists', 'autolink' ],
                toolbar: [ 'undo', 'bold', 'italic', 'styleselect' ]
            },
            toolbar: "insertfile undo redo | styleselect | bold italic underline left aligncenter alignright alignjustify | forecolor  backcolor | fontselect fontsizeselect| bullist numlist outdent indent | link image media  preview |  emoticons | searchreplace  help ",
            toolbar_items_size: 'small',
            file_picker_types: 'file image media',
            image_title: true,
            automatic_uploads: true,          
            file_picker_types: 'image',
            relative_urls: false,
            file_picker_callback: function (cb, value, meta) {
                var input = document.createElement('input');
                input.setAttribute('type', 'file');
                input.setAttribute('accept', 'image/*');
                input.onchange = function () {
                    var file = this.files[0];

                    var reader = new FileReader();
                    reader.onload = function () {

                        var id = 'blobid' + (new Date()).getTime();
                        var blobCache =  tinymce.activeEditor.editorUpload.blobCache;
                        var base64 = reader.result.split(',')[1];
                        var blobInfo = blobCache.create(id, file, base64);
                        blobCache.add(blobInfo);
                        cb(blobInfo.blobUri(), { title: file.name });
                    };
                    reader.readAsDataURL(file);
                };
                input.click();
            },

            media_url_resolver: function (data, resolve/*, reject*/) {
                if (data.url.indexOf('YOUR_SPECIAL_VIDEO_URL') !== -1) {
                    var embedHtml = '<iframe src="' + data.url +
                    '" width="400" height="400" ></iframe>';
                    resolve({html: embedHtml});
                } else {
                    resolve({html: ''});
                }
            },
            width: "98%",
        };

我希望输出是或作为示例,但实际输出是 ?? .

4

2 回答 2

8

有这个问题。

entity_encoding: "numeric"

这会将表情符号作为 HTML 十进制代码发送到您的数据库,然后当您将它们显示为 HTML 十进制代码时,您的浏览器会将它们转换为表情符号。

于 2019-08-11T08:37:19.793 回答
1

检查您用于处理 HTML 字符串的字符集。当您不小心将字符串从 Unicode 或 UTF-8 等复杂字符集(表情符号所需)转换为更简单的字符(如 ASCII)时,可能会发生这种情况。

于 2019-06-05T00:33:48.807 回答