c#字符串.替换未找到/替换符号(™,®)

本文关键字:替换 #174 符号 字符串 | 更新日期: 2023-09-27 18:06:37

基本上我要做的是用其他东西代替像™,®等符号,但当我调用

myString = myString时。替换("®","something else")

它不做任何事情

任何想法?

c#字符串.替换未找到/替换符号(™,®)

尝试myString。替换("' u00A9","其他");你必须避开©

当您使用String.Replace时,您创建了一个新字符串。认为所提供的字符串被修改是一个非常常见的错误。然而,. net中的字符串是不可变的,不能修改。

你必须这样称呼它:

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

我认为你的错误是在调用Replace时没有将结果赋值给任何东西。

在看不到代码的情况下很难猜测,但是像这样的东西应该可以工作:

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

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

请记住,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

和字符列表:

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);

结果:

Hello world something else,这能行吗?

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

你的原始字符串真的包含那个字符还是它包含像html实体:®®或其他"编码"版本的字符?