本帖最后由 zb328933803 于 2009-09-08 06:32:56 编辑

解决方案 »

  1.   

    StreamWriter SwFtp = new StreamWriter(path + "\\ftp.ini",Encoding.UTF7);//红色编码部分你换成合适的编码比如UTF8 gb2312等所有的写入流都换下
      

  2.   

    终于知道传奇的登陆器是怎么回事了,原来就是写个配置文件,让客户端读取这个配置文件啊。既然中文是乱码,E文和数字都正常,那么肯定是字符编码的问题。
    传奇是使用Delphi写的,并且在Delphi中有两种字符串类型:AnsiString和WideString。
    AnsiString 是 ANSI码,而 WideString 是unicode码,c#只支持unicode码。你可以试着在写配置文件的时候使用UTF8格式,因为AnsiString可以支持UTF8。
      

  3.   

    谢谢各位啦! 哈哈 解决了! 把解决部分的源码贴上! 呵呵 一个登陆器完成 了!!主要是修改 进入游戏 按钮触发事件-----
    /// <summary>
            /// 点击进入游戏按钮触发事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                //获取应用程序路径
                string path = Environment.CurrentDirectory;
                //检测并创建配置文件
                FileStream FsFtp = new FileStream(path + "\\ftp.ini", FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
                FileStream FsMir = new FileStream(path + "\\mir.ini", FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
                FileStream FsMst = new FileStream(path + "\\mirsetup.ini", FileMode.Create,FileAccess.ReadWrite,FileShare.ReadWrite);            //写入配置文件
                //配置文件ftp.ini
                StreamWriter SwFtp = new StreamWriter(FsFtp, Encoding.Unicode);
                SwFtp.WriteLine("[Server]");
                SwFtp.WriteLine("ServerCount=1");
                SwFtp.WriteLine("Server1caption=" + StartGameName);
                SwFtp.WriteLine("Server1name=" + StartGameName.ToString().Trim());
                //配置文件mir.ini
                StreamWriter MrFtp = new StreamWriter(FsMir, Encoding.Unicode);
                MrFtp.WriteLine("[setup]");
                MrFtp.WriteLine("ServerAddr=" + StartGameNameIP);
                MrFtp.WriteLine("FontName=宋体");            //配置文件mirsetup.ini
                StreamWriter MsFtp = new StreamWriter(FsMst, Encoding.Unicode);
                MsFtp.WriteLine("[setup]");
                MsFtp.WriteLine("ServerAddr=" + StartGameNameIP);
                MsFtp.WriteLine("FontName=宋体");
                
                //关闭流
                MsFtp.Close();
                MrFtp.Close();
                SwFtp.Close();
                //关闭流
                FsFtp.Close();
                FsMir.Close();
                FsMst.Close();
                //设置启动进程信息
                ProcessStartInfo info = new ProcessStartInfo();
                //启动文件
                info.FileName = path + "\\Mir.Client.dat";
                //禁止使用系统程序外壳程序启动进程
                info.UseShellExecute = false;
                //启动进程
                Process.Start(info);            }
                catch (Exception ex)
                {
                    //异常
                    MessageBox.Show("意外错误!!!"+ex.Message); ;
                }
            }