asp.net MVC 4显示unicode文本字段

时间:2013-03-15 07:44:01

标签: asp.net asp.net-mvc-4

我有这个名为News的模型:

NewsId int,
Subjet nvarchar(100),
Content text

创建news instance时,我尝试为内容字段输入unicode文本。问题是此unicode内容字段显示如下:

????? ???? ??? 400 ????? ???? ???? 

注意:显示内容字段我在view中执行此操作:

 @Html.DisplayFor(modelItem => item.Content)

我尝试在web.config中设置unicode选项:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" />

但它没有用!

我也试过@Html.Encode(item.Content)但没有结果!

编辑并在head部分使用此标记对我没有帮助:  <meta charset="utf-8" />

任何建议?

编辑:我刚发现保存在数据库中的News Instances包含了内容字段的已损坏数据。我提到过,数据库中的内容字段类型为text,我使用此代码创建News Instance

[HttpPost]
[Authorize]
public ActionResult Create(News news)
{
    if (ModelState.IsValid)
    {
        db.News.Add(news);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View(news);
}

但内容字段的值保存如下:

????? ???? ??? 400 ????? ???? ???? 

2 个答案:

答案 0 :(得分:0)

通过在广告的<head>部分放置以下元标题,尝试将您的网页设为utf-8:

<meta charset="utf-8" />

另一种可能性是文本已经存储在数据库中已损坏,在这种情况下,您必须修复负责该操作的代码。

答案 1 :(得分:0)

我终于想出了这个解决方案:

我将content字段的类型从text更改为nvarchar(max),一切顺利。