Unicode 文本转换为十进制- Blogger
Unicode text converted into decimal- Blogger
我正在尝试通过 Blogger 将一些马拉雅拉姆语文本分享到 Facebook 提要对话框,但我遇到了一些问题。这就是问题所在。我直接在博客 HTML 的部分 post 中使用提要对话框代码,因此,最终文本会被博主自动转换为 Unicode 十进制,而 Facebook 会以相同的方式显示文本不可读的格式。
一个例子
function FBShareOp(){
var name = 'ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്'
var description = "ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്"
var share_image = 'IMAGE LINK ';
var share_url = 'URL';
var share_capt = 'ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്';
所以在上面的代码中,我使用的是自定义马拉雅拉姆语文本 ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്
,在 post 发布后,博主将该文本转换为 ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്
并且 Facebook 正在显示正文就是这样。
那么我怎样才能让它发挥作用呢?我不希望博主那样格式化它。有没有什么办法 post 没有这种格式的文本,以便 Facebook 可以正确显示它?提前致谢。
发生这种情况是因为 Blogger 使用的 XML 解析器转义了某些字符。阻止内容被转义的一种方法是将其包含在 -
<![CDATA[
... Your code ...
]]>
但是在post编辑器里面,上面的方法是行不通的。相反,您将必须通过 JavaScript 函数解码实体(如 following answer 中所示)。您的代码将按以下方式更改 -
<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>
我正在尝试通过 Blogger 将一些马拉雅拉姆语文本分享到 Facebook 提要对话框,但我遇到了一些问题。这就是问题所在。我直接在博客 HTML 的部分 post 中使用提要对话框代码,因此,最终文本会被博主自动转换为 Unicode 十进制,而 Facebook 会以相同的方式显示文本不可读的格式。
一个例子
function FBShareOp(){
var name = 'ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്'
var description = "ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്"
var share_image = 'IMAGE LINK ';
var share_url = 'URL';
var share_capt = 'ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്';
所以在上面的代码中,我使用的是自定义马拉雅拉姆语文本 ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്
,在 post 发布后,博主将该文本转换为 ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്
并且 Facebook 正在显示正文就是这样。
那么我怎样才能让它发挥作用呢?我不希望博主那样格式化它。有没有什么办法 post 没有这种格式的文本,以便 Facebook 可以正确显示它?提前致谢。
发生这种情况是因为 Blogger 使用的 XML 解析器转义了某些字符。阻止内容被转义的一种方法是将其包含在 -
<![CDATA[
... Your code ...
]]>
但是在post编辑器里面,上面的方法是行不通的。相反,您将必须通过 JavaScript 函数解码实体(如 following answer 中所示)。您的代码将按以下方式更改 -
<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>