Javascript Unicode文本转换为十进制-Blogger

Javascript Unicode文本转换为十进制-Blogger,javascript,html,blogger,unicode-escapes,Javascript,Html,Blogger,Unicode Escapes,我试图通过Blogger将一些马来语文本分享到Facebook提要对话框,但我遇到了一些问题。问题就在这里。我直接在博客文章的HTML部分使用提要对话框代码,因此,最终文本由blogger自动转换为Unicode十进制,Facebook以相同的不可读格式显示文本 一个例子 function FBShareOp(){ var name = 'ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്' var description = "ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്" var

我试图通过Blogger将一些马来语文本分享到Facebook提要对话框,但我遇到了一些问题。问题就在这里。我直接在博客文章的HTML部分使用提要对话框代码,因此,最终文本由blogger自动转换为Unicode十进制,Facebook以相同的不可读格式显示文本

一个例子

function FBShareOp(){
 var name = 'ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്'
 var description = "ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്"
 var share_image  = 'IMAGE LINK ';
 var share_url  = 'URL'; 
 var share_capt = 'ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്';
因此,在上面的代码中,我使用的是定制的马来语文本
ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്
发布后,blogger将该文本转换为
ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്
和Facebook显示的文本完全一样


那么我怎样才能让它工作呢?我不想博主把它格式化成那样。有没有办法在没有这种格式的情况下发布该文本,以便Facebook能够正确显示?提前感谢。

这是因为Blogger使用的XML解析器转义了某些字符。阻止内容转义的一种方法是将其封闭在-

<![CDATA[ 
 ... Your code ...
]]>

但在post编辑器中,上述方法不起作用。相反,您必须通过JavaScript函数对实体进行解码(如中所示)。您的代码将按以下方式更改-

<script>

   var decodeEntities = (function() {
     // this prevents any overhead from creating the object each time
     var element = document.createElement('div');

     function decodeHTMLEntities(str) {
      if(str && typeof str === 'string') {
        // strip script/html tags
        str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
        str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
        element.innerHTML = str;
        str = element.textContent;
        element.textContent = '';
       }

       return str;
    }

   return decodeHTMLEntities;
   })();

   function FBShareOp(){
   var name = decodeEntities('ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്');
   var description = decodeEntities("ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്");
   var share_image  = 'IMAGE LINK ';
   var share_url  = 'URL'; 
   var share_capt = decodeEntities('ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്');
   }

</script>

变量decodeEntities=(函数(){
//这可以防止每次创建对象时产生任何开销
var-element=document.createElement('div');
函数解码特性(str){
if(str&&typeof str=='string'){
//strip脚本/html标记
str=str.replace(/]*>([\S\S]*?)/gmi',);

str=str.replace(/Hi Prayag,谢谢你的回复。这对我不起作用。它仍然是格式化文本。你能在博客上测试它并确认吗?提前谢谢。我直接在post HTML中使用代码,而不是在博客主题中。顺便说一句。检查这个博客的HTML源代码-在顶部附近你会看到你的代码实例。你会我注意到CDATA存在时,转义没有发生。是的,我看到了。我正在我的博客上再次检查。我会再打给你。感谢我测试过,但它仍然不适用于我。我怀疑你在博客模板中没有使用此方法吗?但我没有。我在个人博客帖子上使用它(编辑HTML).非常感谢Prayag.它现在对我起作用了。我一定是早些时候犯了一些错误。现在工作得很好。再次感谢