符号é和á

时间:2012-02-18 14:31:34

标签: c#

我正在开发Windows Phone 7 prog。 主题名称中的符号存在问题。我想使用这个C#代码:

str="Santiago Bernabéu";
int i=str.IndexOf(é);
if(i!=-1)
str.Replace('é','e');

但在调试中i = -1。

请帮我解决这个问题:)

P.S。我是俄罗斯人,我的英语不好。请用简单的英语回答我:)谢谢:)

P.P.S。谢谢!但还有另一个问题:我的程序员在调试模式中下载信息和主题名称中的符号 - ' '。也许这是编码麻烦?使用UTF-8获取所需信息的网站。

P.P.P.S。

正在下载源代码:

public string Adress
    {
        get
        {
            return _adr;
        }

        set
        {
            _adr = value.Substring(0, value.Length - 1);
            client.Encoding = System.Text.UTF8Encoding.UTF8;
            client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
            client.DownloadStringAsync(new Uri(_adr, UriKind.Absolute));
        }
}

处理程序:

        void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Error != null)
            return;
        _sourcecode = e.Result;
    }

请帮助:)这是项目功能部分的最后一个问题

3 个答案:

答案 0 :(得分:2)

以下适用于我:

string str = "Santiago Bernabéu";
int i = str.IndexOf('é');

Console.WriteLine("i = {0}", i);

if(i != -1)
    str = str.Replace('é', 'e');

Console.WriteLine(str);

输出结果为:

  

i = 15

     

Santiago Bernabeu

请注意,您需要执行str = str.Replace('é', 'e') - 替换不会发生。

答案 1 :(得分:0)

这可能取决于您系统的区域设置。请尝试以下方法:

int i = str.IndexOf("é", StringComparison.InvariantCulture)

尼科

答案 2 :(得分:0)

解决此问题 - 使用MSPToolkit