1

这是我的情况,在我看过的任何帖子中都没有找到答案。我正在开发的应用程序允许用户选择要上传的 .csv 文件,但西班牙语和葡萄牙语字符(例如 á、é、ñ 和 õ)显示为带有“?”的黑色菱形。在里面。现在,我验证了 .csv 文件以 UTF-8 格式保存,但是在执行以下代码片段时:

using (StreamReader objStreamReader = new StreamReader(p_strFilename, Encoding.UTF8))
{
     string strLine;
     while ((strLine = objStreamReader.ReadLine()) != null && lstErrors.Count <= _MAX_ERRORS)

strLine 包含带有“?”的黑色菱形 特殊字符应该在 ReadLine() 执行后的位置。请注意,我的 .csv 文件已被验证为 UTF-8,并且 StreamReader 需要 UTF-8。因此,为什么特殊字符没有正确显示?如果有人对此有洞察力,您的答案将不胜感激。

谢谢。吉姆·B。

4

1 回答 1

1

听起来您的用户在 aspx 页面上的字符编码方面遇到了困难。默认情况下,本地浏览器使用本地字符集(有意义,对吧?)。如果您的源数据使用不同的字符集/编码,您可能需要向页面添加元标记,以便浏览器正确显示数据。从微软页面: 全球化一步一步

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=">
您可以使用任何支持的字符集友好名称(例如,UTF-8)或任何代码页名称(例如,窗口 1251)。

查找有关此主题的更多信息的其他一些好地方是:

ASP 和 ASP.NET 中
的全球化问题 设置 HTTP 字符集参数

于 2012-11-13T21:37:37.770 回答