基本上我要做的是用其他东西替换像™,®等符号,但是当我打电话时
myString = myString.Replace("®", "something else")
它没有做任何事情
任何想法?
答案 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);
答案 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:
答案 6 :(得分:0)
它对我有用:
var myString = "Hello world ®, will this work?";
var result = myString.Replace("®", "something else");
Console.WriteLine(result);
结果:
Hello world其他的东西,这会有用吗?
你可以看到它run here。
您的原始字符串是否确实包含该字符,或者它是否包含html实体:®
或®
或该字符的其他“编码”版本?