c# StreamWriter日语输出
本文关键字:输出 日语 StreamWriter | 更新日期: 2023-09-27 18:15:46
出于某种奇怪的原因,我正在从一个.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
输出示例:㙻㘸㤶㘬㌸㌶㘬㌸㐶㘬㌸㔶㘬〹㘰㘬〹㜰㘬〹㠰㘬〹㤰㘬〹〱㜬㐹㜬
我假设您正在尝试在记事本中阅读输出(请参阅这篇维基百科文章)。对Encoding.UTF8
使用StreamWriter(String, Boolean, Encoding)
构造函数,这将导致将BOM写入输出文件,使记事本能够正确读取它。如果您不需要在记事本中读取它,则保持原样,并注意任何读取它并期望它为UTF-8的其他程序都将正确读取它。
从这里这些字符可能表示文件是unicode,而不是ansi。
你打开文件作为一个ANSI文件,在一个文本编辑器?如果是这样,那就是为什么你会看到这些角色。要么尝试以unicode打开它,要么将编码设置为非unicode。
您没有为保存的文件设置合适的编码。这就是为什么你最终会使用日文字符。如果不以文件的形式使用数据,就不会有真正的问题。如果您将其作为文件使用,则需要对其进行适当编码,以便可读。