diff --git a/module/doc/js/browsetemplate.ui.js b/module/doc/js/browsetemplate.ui.js index 1fbdf1f068..0e1a2e5bb9 100644 --- a/module/doc/js/browsetemplate.ui.js +++ b/module/doc/js/browsetemplate.ui.js @@ -70,6 +70,16 @@ function getTableOptions(options, info) return options; } +/** + * Replace all emoji to ?? to prevent data loss in mysql. + * 替换所有表情符号为 ?? 以防止 mysql 数据丢失。 + */ +function removeEmoji(text) +{ + if(typeof text !== 'string') return text; + return text.replace(/[\u{1f300}-\u{1f5ff}\u{1f900}-\u{1f9ff}\u{1f600}-\u{1f64f}\u{1f680}-\u{1f6ff}\u{2600}-\u{26ff}\u{2700}-\u{27bf}\u{1f1e6}-\u{1f1ff}\u{1f191}-\u{1f251}\u{1f004}\u{1f0cf}\u{1f170}-\u{1f171}\u{1f17e}-\u{1f17f}\u{1f18e}\u{3030}\u{2b50}\u{2b55}\u{2934}-\u{2935}\u{2b05}-\u{2b07}\u{2b1b}-\u{2b1c}\u{3297}\u{3299}\u{303d}\u{00a9}\u{00ae}\u{2122}\u{23f3}\u{24c2}\u{23e9}-\u{23ef}\u{25b6}\u{23f8}-\u{23fa}]/ug, '??'); +} + function mergeDocFormData(doc, formData) { if(!doc || !formData) return; @@ -177,7 +187,8 @@ function submitNewDoc(doc, spaceID, libID, moduleID, formData, afterCreate) const url = $.createLink('doc', 'createTemplate', `libID=${libID}&moduleID=${moduleID}`); const docData = { - content : doc.content, + rawContent : removeEmoji(doc.content), + content : removeEmoji(doc.html), status : doc.status || 'normal', contentType : doc.contentType, type : 'text', @@ -269,7 +280,7 @@ function handleSaveDoc(doc) const moduleID = docApp.signals.moduleID.value; const url = $.createLink('doc', 'editTemplate', `docID=${doc.id}`); const docData = { - content : doc.content, + rawContent : removeEmoji(doc.content), status : doc.status || 'normal', contentType: doc.contentType, type : 'text', @@ -278,6 +289,7 @@ function handleSaveDoc(doc) title : doc.title, keywords : doc.keywords, acl : doc.acl, + content : removeEmoji(doc.html), space : spaceType, uid : (doc.uid || `doc${doc.id}`), };