【发布时间】:2013-04-11 15:21:34
【问题描述】:
我在比较 Request.queryString 接收的字符串和文件 .resx 中的一行时遇到了一些问题。
代码将Request.queryString 接收到一个名为q 的变量,然后它转到一个函数来比较一行中是否包含q 值:
while ((line = filehtml.ReadLine()) != null)
{
if (line.ToLower().Contains(q.ToLower().ToString()))
HttpContext.Current.Response.Write("<b>Content found!</b>");
else
HttpContext.Current.Response.Write("<b>Content not found!</b>");
}
由于它是在静态文件中搜索,因此必须考虑特殊字符并搜索:例如,Iberê 不会返回 true,因为 .Contains、.IndexOf 或 .LastindexOf 正在比较:iber&ecirc; ,来自q,iber&#234; 来自线路。
考虑到我已经尝试使用 ResXResourceReader(Visual Studio 找不到)、ResourceReader 和 ResourceManager(这些我无法通过要读取的路径设置静态文件)。
编辑:
问题解决了。有一个SpecialChars的实例,用EntitiesEncode方法覆盖q值
【问题讨论】:
-
所以你说的是字符串“iberê”不等于“iberê”?这是正确的 - 我很惊讶你感到惊讶......
-
我很确定您需要将数据转换为
byte[]并进行比较。
标签: c# asp.net visual-studio encoding string-comparison