如何在阅读文本文件时删除黑钻石问号?
在文本文件中,真正的字符是•但在阅读文本文件后它变为 。我不知道如何操纵/删除那个角色。
答案 0 :(得分:3)
此字符表示您正在以错误的编码方式读取文件。首先,您需要知道文件的编码方式。例如,您可以从Notepad ++获取此信息。然后在您的代码中读取指定此编码的文件。以下是读取unicode文件的示例:
var text = File.ReadAllText(filePath, Encoding.Unicode);
删除字符:
text.Replace("•", string.Empty);
答案 1 :(得分:2)
您可以为该角色设置条件。然后使用Remove方法。像这样的东西:
if(inputstring.StartsWith('�')
{
inputstring = inputstring.Remove(0,1);
}
答案 2 :(得分:0)
black diamond with a question mark is a place-holder for unrecognized characters。您可以使用Regex将•
替换为空字符串:
//...
using System.Text.RegularExpressions;
using System.IO;
//...
string filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "file.txt");
string yourString = Regex.Replace(File.ReadAllText(filePath, "file.txt")), @"\u2022", "");
由于•
字符的值为u2022
,因此正则表达式模式将匹配它并将其替换为空字符串。在这种情况下,Regex.Replace()
需要3个参数:源字符串,表达式和替换匹配模式的文本的字符串。
我测试了它并且它运行得很好:
file.txt的内容:hello, •world!
使用Regex替换•
后:
答案 3 :(得分:-1)
File.ReadAllLines(pathTxt, Encoding.GetEncoding(28591));