c#字符串.替换未找到/替换符号(™,®)
本文关键字:替换 #174 符号 字符串 | 更新日期: 2023-09-27 18:06:37
基本上我要做的是用其他东西代替像™,®等符号,但当我调用
myString = myString时。替换("®","something else")
它不做任何事情
任何想法?
尝试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实体:®
或®
或其他"编码"版本的字符?