c# - CSS解析编码问题?

标签 c# .net css encoding

我正在尝试使用找到的代码元素解析器解析一些 css 文件 here .基本上我需要从 ftp 获取一个 css 文件,将其转换为字符串,解析它以便我可以枚举 css 类。使用默认的 .net ftp 客户端返回的字符串与解析器一起正常工作。使用我们在元素中使用的 ftp 解析器失败(CuteFTP)。这就是事情变得奇怪的地方。据我所知,作为字符串返回的两个 css 文件是相同的,它们来自同一个 css 文件。那么为什么一个有效而另一个失败,是否有一些隐藏的格式?我已经确认两个 ftp 客户端都使用 utf8 编码。这是作为字符串返回的两个 css 类。我上传了一个显示问题的 vs2010 元素 here .任何帮助将不胜感激......这是让我挠头的问题之一。谢谢

string cssThatWorks = "\r\n.uploadfiles_button{\r\n    color:#529214; \r\nborder:1px solid #C6D880;\r\ndisplay:inline-block;\r\n    margin:0 7px 0 0;\r\n    font-family:\"Lucida Grande\", Tahoma, Arial, Verdana, sans-serif;\r\n    font-size:12px;\r\n    line-height:130%;\r\n    text-decoration:none;\r\n    font-weight:bold;\r\n    cursor:pointer;\r\n    padding:5px 10px 6px 7px; \r\n}\r\n\r\n\r\n\r\n";

string cssThatFails = "\r\n.uploadfiles_button{\r\n    color:#529214; \r\nborder:1px solid #C6D880;\r\ndisplay:inline-block;\r\n    margin:0 7px 0 0;\r\n    font-family:\"Lucida Grande\", Tahoma, Arial, Verdana, sans-serif;\r\n    font-size:12px;\r\n    line-height:130%;\r\n    text-decoration:none;\r\n    font-weight:bold;\r\n    cursor:pointer;\r\n    padding:5px 10px 6px 7px; \r\n}\r\n\r\n\r\n\r\n";

更新

看起来字符串的开头有一个 UTF8 标识符,所以我添加了以下代码,应该将其删除。传递给构造函数的 true 应该跳过它,但事实并非如此。有什么想法吗?

  UTF8Encoding utf8 = new UTF8Encoding(true);
  Byte[] encodedBytes = utf8.GetBytes(cssThatFails);
  string cssWithoutUTF8Identifier = utf8.GetString(encodedBytes);

最佳答案

我在 TextPad 中打开您的示例元素中的 Default.aspx.cs 文件并看到一个“?” “cssThatFails”字符串开头的字符,表示未知字符。所以我在 VS 的二进制编辑器中打开同一个文件,注意到“cssThatFails”字符串的开头有 UTF-8 字节顺序标记 (0xEFBBBF)。这可能是罪魁祸首。

关于c# - CSS解析编码问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7042795/

相关文章:

c# - 从 Entity Framework 通用存储库呈现 IEnumerable<string>

.net - 来自多个项目的单个装配

.net - 禁用代码分析警告 .NET

c# - 将文件添加到 C# Web 应用程序的 bin 目录可能会产生什么后果?

html - 如何对齐CSS内容字符串

css - 通过CSS赋予段落效果

css - 多行进度条 Bootstrap

c# - 从控件中转换窗口

c# - 将 URL(存储在数据库中的 URL)中的图像加载到 Picturebox 中

c# - Binding.Path绑定(bind)