当前位置:编程学习 > C#/ASP.NET >>

高手看看这段代码如何支持中文显示.

高手看看这段代码如何支持中文显示.
程序作用主要是自动监测C:\MSSQLTips下是否有文本文件,如果发现有自动读取里面内容并且显示出来,现在的问题是,只能读取英文或者数字,如果是中文,会显示??????,请教大家如何修改。


 // MessageBox.Show(e.Name);
            try
            {
                using (StreamReader sr = new StreamReader(@"C:\MSSQLTips\" + e.Name))
                {
                    String line = sr.ReadToEnd();
                    sr.Dispose();
                    sr.Close();

                    string line2 = line.Replace("\r\n", "\u0000");
                     
                    Packet packet = new Packet(0x7025);
                    packet.WriteUInt8((byte)7);
                    packet.WriteUInt8((byte)0);
                    packet.WriteAscii(line2);
                    if (!string.IsNullOrEmpty(line2))
                    {
                        Agent.Send(packet);
                    }
                    System.IO.File.Delete(@"C:\MSSQLTips\" + e.Name);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("error" + ex);
            }
        }

        private void button9_Click_1(object sender, EventArgs e)
        {
            FileSystemWatcher watcher = new FileSystemWatcher();
            watcher.Path = @"C:\MSSQLTips\";

            watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.Size;
            watcher.Filter = "*.txt";

            //watcher.Changed += new FileSystemEventHandler(OnChanged);
            watcher.Created += new FileSystemEventHandler(OnChanged);

            watcher.EnableRaisingEvents = true;
            watcher.InternalBufferSize = 64000;
            label31.Text = "自动公告启动";
        } --------------------编程问答-------------------- using (StreamReader sr = new StreamReader(@"C:\MSSQLTips\" + e.Name,Encoding.Default)) --------------------编程问答--------------------
引用 1 楼 lzw345907453 的回复:
using (StreamReader sr = new StreamReader(@"C:\MSSQLTips\" + e.Name,Encoding.Default))


这样可以处理文本显示中文,不过Encoding.Default是当前系统设置的默认字符集编码方式,建议使用(@"C:\MSSQLTips\" + e.Name, Encoding.GetEncoding("gb2312")),通用 --------------------编程问答--------------------
引用 2 楼 wyjsimon 的回复:
Quote: 引用 1 楼 lzw345907453 的回复:

using (StreamReader sr = new StreamReader(@"C:\MSSQLTips\" + e.Name,Encoding.Default))


这样可以处理文本显示中文,不过Encoding.Default是当前系统设置的默认字符集编码方式,建议使用(@"C:\MSSQLTips\" + e.Name, Encoding.GetEncoding("gb2312")),通用

试过指定为gb2312,但是指定后为乱码. 默认的话就能正常. 
建议两个都试试..  --------------------编程问答-------------------- 指定一下字體編碼 --------------------编程问答--------------------
引用 4 楼 wj150158472 的回复:
指定一下字體編碼

怎么指定字体编码?支持简体中文 --------------------编程问答--------------------

UTF8
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,