JavaScript内部的法语字符在XSLT内部的HTML中

时间:2014-11-13 22:37:56

标签: javascript html xml xslt

我有一个.xsl文件,其HTML格式如下:

<input onblur="resetText(this,'octobre à décembre')" />

显然,这不会按原样运作,所以我必须逃避它。这就是我尝试过的:

<xsl:text disable-output-escaping="yes"><![CDATA[
  <input onblur="resetText(this,'octobre &agrave; d&eacute;cembre')" />
]]></xsl:text>

这不起作用,我在浏览器中获得Uncaught SyntaxError: Unexpected identifier

我在这里缺少什么?

3 个答案:

答案 0 :(得分:1)

  

显然,这不会按原样运作

没有什么明显的。在XSLT中,您可以使用Unicode字符而无需转义(假设您的编码为UTF-8或类似)。您无法使用未定义的实体,例如&agrave;

如果您需要输出将重音字符转义为HTML实体,请尝试将输出方法设置为HTML(可能不适用于每个XSLT处理器)。

答案 1 :(得分:0)

我不是这方面的专家,但我想知道您是否让浏览器知道要使用哪种字符编码?

我使用UTF-8

确保将文件保存/转换为utf-8,并确保指定字符编码

<?xml version="1.0" encoding="utf-8"?>

答案 2 :(得分:0)

你不会发布resetText(),但这是我提出的那个让事情有用的人:

// remove second param when calling from onblur 
// assumes input value has decoded html entities

function resetText(input) {
    var rawStr = input.value;
    var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&]/gim, function(i) {
       return '&#'+i.charCodeAt(0)+';';
    });

    input.value = encodedStr;
}