You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mvc Razor视图渲染连字符出现异常乱码问题求助

解决Razor视图连字符发布后乱码的问题

这种乱码情况(checkâ€in替代check-in)几乎可以肯定是字符编码不匹配导致的——本地调试环境的编码配置和正式服务器不一致,才会出现本地正常、发布后出错的现象。下面是一步步的排查和解决方法:

1. 确认视图文件的保存编码

首先检查你的Razor视图(.cshtml)文件本身的编码是否为UTF-8:

  • 在Visual Studio中右键点击该视图文件,选择「属性」;
  • 点击「高级保存选项」(如果找不到,可在VS的「工具→选项→文本编辑器→所有语言→高级」里勾选「显示高级保存选项」);
  • 在「编码」下拉框中选择「Unicode (UTF-8 无签名)」,保存文件后重新发布。

2. 配置Web应用的全局编码

在项目的web.config文件中添加全局编码配置,强制应用使用UTF-8处理请求、响应和文件:

<configuration>
  <system.web>
    <globalization 
      fileEncoding="utf-8" 
      requestEncoding="utf-8" 
      responseEncoding="utf-8" 
      culture="en-US" 
      uiCulture="en-US" />
  </system.web>
</configuration>

3. 确保HTML页面的charset声明正确

在视图的<head>标签里添加明确的UTF-8编码声明,让浏览器知道用什么编码解析页面:

<meta charset="UTF-8">
<!-- 兼容旧浏览器的备选写法 -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

4. 检查服务器(IIS)的编码设置

如果是部署在IIS上,还需要确认服务器端的编码配置:

  • 打开IIS管理器,找到你的站点;
  • 双击「.NET全球化」,确认「文件编码」和「响应编码」都设置为UTF-8;
  • 同时检查站点的「HTTP响应头」,确保没有手动设置非UTF-8的Content-Type头。

问题根源说明

本地调试时,IIS Express默认会以UTF-8编码处理文件和响应,而正式服务器可能默认使用了ISO-8859-1(Latin-1)这类旧编码。当视图文件保存为UTF-8,但服务器用其他编码解析输出时,UTF-8字符就会被错误解码,出现类似â€的乱码。

内容的提问来源于stack exchange,提问作者Maximus IVI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 02:23:47