asp.net-mvc-3 - MVC3 Razor循环中的异常隐藏字符

原文 标签 asp.net-mvc-3 unicode razor renderpartial

我有一个循环

<ul id="news-list" class="thumbobs-list">
    @foreach (var item in Model.News) {
        @Html.Partial("RenderNews/" + item.TypeString, item)
    }
</ul>

使用这样的局部
@model Web.Models.DataModel.NewsItem
@{ Layout = null; }
<li class="news-item @Model.TypeString.ToLower()" id="id-@Model.Id">
   <h3 class="headline">
     Example News headline.
   </h3>
   <p class="timestamp">@Model.TimeString</p>
</li>

效果很好

但是当我使用CSS进行样式设置时,遇到一个隐藏的空格字符,这导致了问题

在每个子区域的前面有一个空间,一个U + FEFF,以及另一个引起设计问题的空间。

有人看过吗?

最佳答案

您已经找到了BOM表,字节顺序标记。它被存储为文本文件中的第一个字节,以指示编码。

http://en.wikipedia.org/wiki/Byte_order_mark

[编辑]

您可以使用记事本和“另存为...”作为ANSI打开文件。这将删除BOM(以及编码)。

// reading a text file as binary will include the BOM flag
FileStream FS = new FileStream(MapPath(@"~\Text\TestUTF8.txt"), FileMode.Open);

byte[] Data = new byte[100];

FS.Read(Data, 0, 100);  // BOM is in the data
FS.Close();

// get rid of the BOM
String String1 = System.Text.Encoding.UTF8.GetString(Data);

// reading a text file as text will automatically handle it.
String String2 = File.ReadAllText(MapPath(@"~\Text\TestUTF8.txt"));

相关文章:

jquery - 在带有模型的MVC3中使用jQuery函数

javascript - 如何在JavaScript MVC3 Razor View引擎.cshtml中创建 session 变量

c# - MVC删除删除不相关的数据

php - 编码PHP / MySQL

c# - 在代码块之后立即添加方括号

c# - 使用.NET 4 MVC 3和jQuery更新DIV

unicode - 了解Unicode:代理块,非字符

python - Pytest在Unicode中无法生成XML输出

asp.net-mvc - 在某些情况下,为什么Razor不能不带括号将变量识别出来?

asp.net-mvc-2 - 您可以创建具有模型和演示模型的自定义razor View 基类吗?