【问题标题】:HTML/Unicode character and specifically the checkmark character in .resx files are not rendered correctly in HTML?HTML/Unicode 字符,特别是 .resx 文件中的复选标记字符未在 HTML 中正确呈现?
【发布时间】:2013-05-17 19:05:57
【问题描述】:

我正在尝试在我的元数据描述中添加复选标记。由于我的网站是多语言的,所以我添加如下描述

<%@ Page MetaDescription="<%$Resources:metadescription%>

当我添加这些代码时,复选标记代码 (http://www.fileformat.info/info/unicode/char/2713/index.htm)

&#10003; 

&#x2713;

或者正如某人已经建议的那样:

&#10004;

在我的 Visual Studio 2012 资源文件 (default.aspx.resx) 中,它们被呈现为确切的代码,而不是我期望的复选标记。如何将复选标记呈现到 HTML 而不是代码?

我将此行添加到我的母版页:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

当我直接在 HTML 中输入这段代码时:

&#10004;

所以在 default.aspx 中,复选标记正确呈现!

当我替换时

<%@ Page MetaDescription="<%$Resources:metadescription%>" 

<%@ Page MetaDescription="<%=$Resources:metadescription%>" 

我只是在我的 HTML 中得到这个:

<meta name="description" content="&lt;%=$Resources:metadescription%>" />

资源文件中的 HTML 代码似乎有问题,但是如何解决呢?

【问题讨论】:

    标签: html unicode visual-studio-2012 resource-files


    【解决方案1】:

    所以你只是看到

    <meta name="description" content="… &#10004; …" />
    

    在生成的标记中,您希望看到

    <meta name="description" content="… ✔ …" />
    

    改为。

    首先,我想指出,任何用户代理在读取content 属性时都应该将&amp;#10004; 实体解码为。见attributes in HTML spec。因此,您真正需要的是几乎没有技术影响的外观变化。

    如果您想获得后者的标记(使用),只需在您的资源文件中包含 ✔。您可以从

    复制并粘贴它
    • Fileformat.info pageJava 数据 部分的 string.toUpperCase() 下或从
    • 呈现
    • 当您将javascript:'&amp;#10004;' 放入浏览器的地址栏中时呈现的页面。

    您也可以直接使用和input method 输入。例如。在 Windows 上,您可以键入 Alt+2,7,1,4 ( Fileformat.info 上也有描述)。有关各种操作系统的更多实用info on input methods,请参见 fsymbols.com。

    【讨论】:

    • 您在浏览器位置栏中的 javascript 建议对我有用! :) 谢谢!
    【解决方案2】:

    如何在 HTML 中包含资源文本?您是否将值分配给标签?你是直接写到页面上的吗? ASP.NET 将自动对控件子集的值进行 html 编码。

    following list of controls do not HTML encode the value you assign。所有其他控件将自动编码。如果需要在自动编码控件中显示值,则需要将原始 unicode 值放入资源文件中,而不是 HTML 编码版本。

    要将 unicode 文本添加到 resx 文件,您可以使用 ALT+1+0+0 +0+3 在数字键盘上插入字符。或者您可以从任何网页或word文档或Windows中的字符映射直接将其复制粘贴到编辑器中。

    或者要使&lt;% %&gt; 不自动编码您的HTML 内容,请使用&lt;%= %&gt;

    【讨论】:

    • 啊,第一个答案似乎是在正确的方向!我检查了你的链接。该值被分配给一个页面元素,如下所示: " 所以你说我需要在我的资源文件中添加原始 unicode 值?我在这里检查了fileformat.info/info/unicode/char/2713/index.htm,但我不知道原始 unicode 值是什么样的。是在这吗?如果是这样,我应该使用哪一个?谢谢!
    • 有什么想法吗? :) 我完全被困在这里了。
    • 我已经更新了我的答案。要么使用 &lt;%= %&gt; 并将 HTML 编码字符保留在资源文件中,要么使用 ALT-1,0,0,0,3。
    • 抱歉,没看到。我尝试通过 Alt+num-pad 代码添加字符,但随后在 .resx 文件中插入“‼”。当我通过相同的组合键在 MS-Word 中插入字符时,我确实看到了复选标记符号。好像我的 .resx 文件不支持编码?这甚至可能吗?
    • 您的 ResX 文件以可能与 Word 不同的字体显示。尝试在浏览器中查看它的外观。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    相关资源
    最近更新 更多