我使用C#代码从keywords.txt中读取。我用4-5种语言(希腊语,瑞典语,土耳其语等)存储了一些关键词和短语
StreamReader sr = new StreamReader("keywords.txt", System.Text.Encoding.Unicode);
ArrayList keywords = new ArrayList();
while (!sr.EndOfStream)
{
keywords.Add(sr.ReadLine());
}
sr.Close();
之后我用这个
string comment = getText(rev, "comment="", """, out rev);
if (comment.Contains(keywords[i].ToString()))
{
blah blah blah
}
它可以读英文单词而不是希腊语,土耳其语有特殊字符等。我使用默认编码UTF8没有结果..我已经将streamread的编码改为unicode没有结果.. 你有什么想法? 谢谢:D
更新:我发现问题是当getText获取评论时,而不是当我将评论与评论进行比较时..我将评论保存到文件中
string comment = getText(rev, "comment="", """, out rev);
using (System.IO.StreamWriter file = new System.IO.StreamWriter("WriteText.txt", true))
{
file.WriteLine(comment);
}
我得到了这种符号而不是希腊字母
ΑναίΟεση Ξκδοσης 4232870 Ξ±Ο€Ο Ο„ΞΏΞ½
通过一项小型研究和测试,我发现这是与希腊内容相同的编码设置为Windows 1253 ..有没有办法控制getText使用的编码?
答案 0 :(得分:0)
如果您的问题是因为关键字和注释是相似的字符串但不相等(大写/小写,特定于文化的单词),则必须使用另一种版本的比较:
http://msdn.microsoft.com/es-es/library/cc190529.aspx
public static int Compare(
string strA,
int indexA,
string strB,
int indexB,
int length,
CultureInfo culture,
CompareOptions options
最后一个参数CompareOptions的位置如下:IgnoreSymbols | IgnoreCase | IgnoreNonSpace