在 JavaScript 确认窗口中将 Unicode 转换为字符

本文关键字:Unicode 转换 字符 JavaScript 确认 窗口 | 更新日期: 2023-09-27 18:33:21

>我有一个如下所示的按钮

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="clicked('R&#233;cup&#233;ration de frigorig&#232;ne')" />

和如下所示的 JavaScript 函数

function clicked(s) {           
    confirm( s);
}

上面的代码工作正常。但是当我将属性从后端添加到按钮时,例如,

Button1.Attributes.Add("OnClick", "clicked('R&#233;cup&#233;ration de frigorig&#232;ne')");

它按原样显示字符串(Unicode 未在确认框中转换)。这是什么原因呢!.而且我没有得到解决方案。

在 JavaScript 确认窗口中将 Unicode 转换为字符

只需自己对属性进行 HTML 解码,因为它看起来像 ASP.NET 会自动将其转换为前端代码,但在从后端代码添加它时不会:

   Button1.Attributes.Add("OnClick", "clicked('" +
     HttpUtility.HtmlDecode("R&#233;cup&#233;ration de frigorig&#232;ne" + "')");

在服务器端使用实际的 unicode 字符并将其添加为 Button1 的属性,ASP.NET 自动将它们转换为正确的 HTML 实体。

Button1.Attributes.Add("ClickMessage", "actual unicode chars not the encoded");
Button1.Attribute.Add("OnClick", "clicked(this.getAttribute('ClickMessage');");

这样,即使值包含可能破坏脚本的单引号/双引号,您的 javascript 仍然可以工作。