VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 683|回复: 3

如何已ANSI格式将字符串写到文件中呢

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-28 15:40:02 | 显示全部楼层 |阅读模式
我想用C#写个小工具,用来构造一些VBScript,nsi文件,但是发现出来的文件格式是UTF-8的(构造时一部分内容是C#程序自己判断构造字符串,另一部分是从预先准备好的文件里读出来,那些文件格式是ANSI的)。现在发现产生的文件中的中文都变成了乱码,甚至出现中文字符串后面的'号消失导致vbscript不能使用的情况

有没有什么办法能让产生的文件也是ansi格式,并保证不出现乱码呢?

付上我现在复制文件和写文件的方法(就是通过这两个方法生成新文件的):
1。复制文件
        public static string CopyFile(string srcFileName, string aimFileName)
        {
            string result = "";
            StreamReader SR = null;
            try
            {
                string S;
                SR = new StreamReader(srcFileName, Encoding.Default);// File.OpenText(srcFileName);
                S = SR.ReadLine();
                while (S != null)
                {
                    AppendToFile(aimFileName, S);
                    //Console.WriteLine(S);
                    S = SR.ReadLine();
                }
            }
            catch (Exception e)
            {
                string s = e.ToString();
                throw;
            }
            finally
            {
                if (SR != null)
                    SR.Close();
            }
            return (result);
        }
  2。写文件
         public static bool AppendToFile(string filepath, string comment)
        {
            StreamWriter SW;
            SW = File.AppendText(filepath);
            SW.WriteLine(comment);
            SW.Close();
            return true;
        }
回复

使用道具 举报

2

主题

29

帖子

16.00

积分

新手上路

Rank: 1

积分
16.00
发表于 2020-3-10 20:45:02 | 显示全部楼层
ASCIIEncoding类试试
回复

使用道具 举报

0

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-3-14 19:45:01 | 显示全部楼层
Encoding 类。楼上的也可以了。StreamWriter 有个构造函数需要指定一个 Encoding 参数。你指定 ASCII 就行了
回复

使用道具 举报

0

主题

38

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
发表于 2020-3-15 12:00:01 | 显示全部楼层
StreamWriter sw = new StreamWriter(path,System.Encoding.Default);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表