C# 关于filestream和streamreader unicode的Q

C# 关于filestream和streamreader unicode的Q,c#,C#,大家好,我有个大问题,直到现在还没有人帮我。 首先,我想打开XXX.vmg(此扩展名来自诺基亚PC套件)文件并读取它,然后将其写入richtextbox。我写的代码没有错误,richtextbox中也没有结果 这是我的密码 FileStream file = new FileStream("c:\\XXX.vmg", FileMode.OpenOrCreate, FileAccess.Read); StreamWriter sw = new StreamWriter(fileW

大家好,我有个大问题,直到现在还没有人帮我。 首先,我想打开XXX.vmg(此扩展名来自诺基亚PC套件)文件并读取它,然后将其写入richtextbox。我写的代码没有错误,richtextbox中也没有结果

这是我的密码

FileStream file = new FileStream("c:\\XXX.vmg", FileMode.OpenOrCreate, FileAccess.Read);

        StreamWriter sw = new StreamWriter(fileW);
        StreamReader sr = new StreamReader(file);
        string s1 = sr.ReadToEnd();
        string[] words = s1.Split(' ');
        for (int i=0; i<words.length; i++)

                   richTextBox1.Text +=Envirment.NewLine +  words[i]; 




        `enter code here`


the output at richtextbox just blank line
FileStream file=newfilestream(“c:\\XXX.vmg”,FileMode.OpenOrCreate,FileAccess.Read);
StreamWriter sw=新StreamWriter(文件W);
StreamReader sr=新的StreamReader(文件);
字符串s1=sr.ReadToEnd();
string[]words=s1.Split(“”);

对于(int i=0;i用谷歌搜索了一下VMG文件,您遇到了一些问题:

  • VMG包含不带字节顺序标记的小尾端Unicode。这意味着标准文本方法,如
    ReadToEnd
    ReadAllText
    将无法工作,除非您指定编码

  • 一旦你得到了编码,VMG就包含了一堆短信头,比如VMG、VCARD和状态块。我不知道你想完成什么,所以你必须决定如何处理这些块

  • 但是,您可以使用以下命令以文本形式读取文件:

    string folderPath = @"C:\path\to\your\VMG\folder";
    using (StreamReader r = new StreamReader(Path.Combine(folderPath, @"filename.vmg"), Encoding.Unicode))
    {
        string s;
        while ((s = r.ReadLine()) != null)
        {
            // s is a readable SMS block, what do you want to do with it?
        }
    }
    

    在谷歌上搜索了一下VMG文件,您遇到了一些问题:

  • VMG包含不带字节顺序标记的小尾端Unicode。这意味着标准文本方法,如
    ReadToEnd
    ReadAllText
    将无法工作,除非您指定编码

  • 一旦你得到了编码,VMG就包含了一堆短信头,比如VMG、VCARD和状态块。我不知道你想完成什么,所以你必须决定如何处理这些块

  • 但是,您可以使用以下命令以文本形式读取文件:

    string folderPath = @"C:\path\to\your\VMG\folder";
    using (StreamReader r = new StreamReader(Path.Combine(folderPath, @"filename.vmg"), Encoding.Unicode))
    {
        string s;
        while ((s = r.ReadLine()) != null)
        {
            // s is a readable SMS block, what do you want to do with it?
        }
    }
    

    这假设.vmg文件包含可读的Unicode文本。它们是否存在?在文本编辑器中打开一个.vmg文件,并发布前几行。6706:零售商86340118的MRP 1凭证的PIN为4802526503801,交易ID为E100515.2321.20013,序列号为8850435691。这些都是XXX.vmga中的行。根据,vmg是空分隔的。这是不可读文本。你能将实际文件上传到像这样的文件传输站点吗?好的,我会上传它,非常感谢你这里是链接,它在VS 2008中。vmg文件包含可读的Unicode文本。它们吗?在文本编辑器中打开一个.vmg文件并发布前几行。6706:零售商86340118的MRP 1凭证的PIN是4802526503801,传输ID是E100515.2321.20013,序列号是8850435691。这些都是XXX.vmg中的行。根据,VMGs是空分隔的。这是不可读的文本。你能像这样将实际文件上传到文件传输站点吗?好的,我会上传它,非常感谢你这是链接,它在VS中2008@hab-记得在下一步勾选勾选选择答案接受它。@hab-记住勾选答案旁边的勾号接受它。