由于一些奇怪的原因,我正在从.txt(记事本)文件中读取数据,我想删除第一个5位数字。程序运行后,我的输出文件正在打印,我认为是日语。我将发布一些代码,以及下面的示例输入和输出。任何帮助将在追踪为什么会发生这种情况时受到赞赏。谢谢。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace BasicFileStripper
{
class Program
{
static void Main(string[] args)
{
//var encoding = new ASCIIEncoding();
StreamWriter write = new StreamWriter(@"C:\Users\Josh\Desktop\MillerEpicOutputs\ClientIds.txt");
StreamReader read = new StreamReader(@"C:\Users\Josh\Desktop\MillerEpicOutputs\j.txt");//, encoding);
string line;
int count = 0;
write.Write("{");
while ((line = read.ReadLine()) != null)
{
count++;
string copy = line.Substring(0, 5);
write.Write(copy + ",");
Console.WriteLine(line);
}
write.WriteLine("};");
write.WriteLine("Count: " + count);
write.Close();
}
}
}
示例输入:
68669 - (DO NOT USE)
68363 - 100 Men of Blue Hills
68364 - 10484 Marty LLC
68365 - 21st Century Therapy
69006 - 21st Century Therapy PC
69007 - 31 Dodge Partnership
69008 - 34 Merriam, LLC
69009 - 3525 Sage Council of Co-Owners
示例输出: 㙻㘸㤶㘬㌸㌶㘬㌸㐶㘬㌸㔶㘬〹㘰㘬〹㜰㘬〹㠰㘬〹㤰㘬〹〱㜬㐹㜬
答案 0 :(得分:4)
我假设您正在尝试在记事本中读取输出(请参阅(this Wikipedia article)。将StreamWriter(String, Boolean, Encoding)
constructor与Encoding.UTF8
一起使用,这将导致将BOM写入输出文件,使记事本正确读取。如果你不需要在记事本中阅读它,保持原样,并注意其他任何读取它并期望它是UTF-8将正确读取它。
答案 1 :(得分:1)
这些可能是指定文件是unicode而不是ansi的字符。
您是否在文本编辑器中将文件作为ANSI文件打开?如果是这样,那就是你看到>字符的原因。尝试将其打开为unicode,或将您的编码设置为unicode。
答案 2 :(得分:1)
您没有对保存的文件进行正确的编码。这就是你最终使用日文字符的原因。如果您不将数据作为文件使用,则没有实际问题。如果您将其作为文件使用,则需要对其进行正确编码以使其可读。