MVC3 Razor循环中奇怪的隐藏角色

Bil*_*nar 2 unicode renderpartial razor asp.net-mvc-3

我有一个循环

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

使用像这样的部分

@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>
Run Code Online (Sandbox Code Playgroud)

这很棒

但是当我用css去风格时,我遇到了一个导致问题的隐藏空白字符

在每个部分空间前面,U + FEFF和另一个空间导致设计问题.

有没有人见过这个?

Ste*_*ens 5

您已发现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"));
Run Code Online (Sandbox Code Playgroud)