CSS解析编码问题
本文关键字:问题 编码 CSS | 更新日期: 2023-09-27 18:05:30
我正在尝试使用这里找到的代码项目解析器解析一些css文件。基本上我需要从ftp把一个css文件变成一个字符串,解析它,所以我可以枚举css类。使用默认的。net ftp客户端,返回的字符串与解析器一起正确工作。使用我们在项目中使用的ftp解析器,它会失败(CuteFTP)。这就是事情变得奇怪的地方。从我已经能够告诉两个css文件返回的字符串是相同的,他们来自同一个css文件。那么为什么一个成功而另一个失败,是否存在一些隐藏的格式?我已经确认两个ftp客户端都使用utf8编码。下面是作为字符串返回的两个css类。我上传了一个vs2010项目,在这里显示了这个问题。任何帮助都将非常感激……这是一个让我摸不着头脑的问题。由于
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)。