C#String.Replace not found = / Symbol(™,®)

基本上我要做的就是用其他东西替换像™,®等符号,但是当我打电话时

  myString = myString.Replace(“®”,“其他东西”) 

它没有做任何事情

有任何想法吗?

试试myString.Replace(“\ u00A9”,“else”); 你必须逃避©

使用String.Replace您将创建一个新字符串。 认为提供的字符串已被修改是一个非常常见的错误。 但是,.NET中的字符串是不可变的,无法修改。

你必须像这样称呼它:

 myString = myString.Replace("®", "something else"); 

我认为你的错误在于调用Replace而不将结果赋给任何东西。

没有看到您的代码很难猜测,但这样的事情应该工作:

 myString = myString.Replace("®", "something else"); 

C#可能不喜欢文字注册符号。 我建议尝试使用字符代码替换字符,使用整数值,hex或unicode。

以下是使用角色®的积分值的示例。

 string originalString = "whatever®"; string stuff = "something else"; char registered = (char)174; string replacedString = originalString.Replace(registered, stuff); 

参考: http : //msdn.microsoft.com/en-us/library/x9h8tsay.aspx

请记住string.Replace返回一个新字符串,因此您需要重新分配它

 myString = myString.Replace("®", "something else"); 

尝试使用Unicode字符替换此符号。

  string x = "® ™ dwdd2"; string y = x.Replace('\u00AE', 'X'); 

它正在工作;-)

http://msdn.microsoft.com/en-us/library/aa664669%28v=vs.71%29.aspx

和Charakters列表:

http://en.wikipedia.org/wiki/List_of_Unicode_characters

这个对我有用:

 var myString = "Hello world ®, will this work?"; var result = myString.Replace("®", "something else"); Console.WriteLine(result); 

结果是:

你好世界别的东西,这会有用吗?

你可以看到它在这里运行 。

您的原始字符串是否确实包含该字符,或者它是否包含类似html实体的字符: ®® 或该角色的其他“编码”版本?