为了举例,我们假设我正在解析一些用德语写的文本。这意味着它包含ü或Ö等符号。问题是当所有德国特定符号都呈现为空方格时。请看一下这张图片:
Image http://img8.imageshack.us/img8/7502/93341046.png
因为我不知道这个符号是ü还是Ö我想用“。”代替它。 (点)。所以上图中的字符串应该变成“Osnabr.ck”。我怎么做? 任何帮助将不胜感激!
最诚挚的问候, 基里尔
答案 0 :(得分:6)
您可以使用正则表达式替换您不想要的任何字符。只需将您想要的字符放在否定集中:
str = Regex.Replace(str, "[^0-9A-Za-z _]", ".");
您应该查看用于解码文本的编码。看起来您没有使用与用于编码文本相同的编码,因为字符没有正确显示。
答案 1 :(得分:2)
如果你想看到实际的字符(我注意到你在visual studio的即时窗口中显示了这个值),你需要使用一个可以显示字符的字体。方块的存在意味着您使用的字体不包含与这些字符匹配的字形。您可以在选项对话框中更改Visual Studio各个部分中使用的字体。
答案 2 :(得分:-1)
字符串类有一个Replace方法。用其他东西替换单个字符最简单:
InnerText.Replace("ü", ".");
您可以通过链接替换来同时更改多个字符:
InnerText.Replace("ü", "[ue]").Replace("Ö", "[Oe]");