C#String。未找到/替换符号(™,®)

时间:2011-08-24 16:07:40

标签: c#

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

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

它没有做任何事情

任何想法?

7 个答案:

答案 0 :(得分:6)

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

你必须这样称呼它:

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

答案 1 :(得分:6)

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

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:1)

C#可能不喜欢文字注册符号。我建议尝试使用字符代码替换字符,使用整数值,十六进制或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

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

尝试使用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

答案 6 :(得分:0)

它对我有用:

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

结果:

  

Hello world其他的东西,这会有用吗?

你可以看到它run here

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