2012-03-26 46 views
0

我有我能设法解决问题,我需要更换不可读的字符(我可以,因为它没有考虑到acount不是贴在这里,但它显示像在Visual C#调试器空白方框。如何在c#中解码特殊字符(空白方块不可读)?

当他们被插入到sql数据库中时,他们被替换成一个?但是我不想要它...我尝试对字符串做一个简单的替换,但是visual c#使得这些字符不可能粘贴。

回答

0

您当你看到红色方块时,你已经失去了相关的字符信息,你不能将它们转换回

+0

是的,这真的很烦人!更令人讨厌的是,在visual studio 2008中,我可以做一个替换,如:mystring.replace(“l□”,“l''”),但在visual studio 2010中,这个方块会自动替换为空白。 – talman 2012-03-26 09:12:21

0

如果你只知道unicode字符,你可以替换任何字符CTER代码:

s = s.Replace('\u0080', ' '); 

可以使用正则表达式来替换一组允许的字符以外的任何字符:

s = Regex.Replace(s, @"[^0-9A-Za-z]", " "); 

另一种方法是在数据库中使用Unicode数据类型,以便它可以处理你的字符串中的任何字符。

+0

非常感谢你,非常感谢,至少我想将方块转换为“'”中的可能包含此“'”的句子。例如,我可以假设我的爱情可以被爱情所取代。所以现在我正在寻找相当于unicode的代码(它不是\ u0080) – talman 2012-03-26 09:25:09

+0

@talman:是的,0080只是一个例子;一个可能的人选。要找出替代你的字符代码,应该看看他们在那里的原因。如果可能的话,你应该在链的前面看看是否有编码不匹配,导致这些角色首先出现,这可以消除问题,而不是试图修补它。 – Guffa 2012-03-26 09:54:56

+0

是的,我知道问题是我不能更早看,因为我使用api检索我这个文本,我没有办法改变任何我只是检索文本。那么认为我将有很长的路要找到比赛,outch ... – talman 2012-03-26 10:19:00