弄了一个文本读写修改器,但是运行程序更改之后一直存在中文乱码问题,用 NOTEpad++ 打开显示是 GB2312 但是用 Encoding.Default,Encoding.GetEncoding("uft-8"),Encoding.GetEncoding("GB2312")都试过了,但是都不行,麻烦各位指点一二。
代码,贴上 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;
namespace frmModify { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private List<string> lines;</string>
private void label3_Click(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void btnSelect_Click(object sender, EventArgs e)
{
FolderBrowserDialog dialog = new FolderBrowserDialog();
if(dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
txtPath.Text = dialog.SelectedPath;
}
}
private void btnModify_Click(object sender, EventArgs e)
{
if(txtPath.Text == string.Empty)
{
MessageBox.Show("请选择文件");
return;
}
string[] files = System.IO.Directory.GetFiles(txtPath.Text, "*.xml", SearchOption.AllDirectories);
foreach(string file in files)
{
LoadFile(file);
ReplaceText();
SaveFile(file);
}
MessageBox.Show("替换成功");
}
private void LoadFile(string file)
{
lines = System.IO.File.ReadAllLines(file).ToList();
}
private void SaveFile(string file)
{
System.IO.File.SetAttributes(file, FileAttributes.Normal);
System.IO.File.WriteAllLines(file, lines, Encoding.GetEncoding("GB2312"));
}
private void ReplaceText()
{
foreach (string line in lines)
{
if (line.IndexOf("删除单据") > 0)
{
line.Replace("Type=\"Edit\"", "Type=\"Print\"");
}
}
}
}
}]
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.