0

テキスト ファイルに ö、ä、ü などの文字が含まれており、ファイルは ANSI でエンコードされています。私はそれを読んで、すべてのデータをデータテーブルに入れたいです。私のコードは次のとおりです。

    private DataTable GetTextToTable(string path)
    {
        try
        {
            DataTable dataTable = new DataTable();
            int rowNo = 0;
            using (StreamReader sr = new StreamReader(path,Encoding.Default,true))
            {
                DataRow dr = null;
                String line;
                while ((line = sr.ReadLine()) != null)
                {
                    dr=dataTable.NewRow();
                    if (rowNo == 0)
                    {
                        string[] Columns = line.Split(new string[] { "\t" }, StringSplitOptions.None);
                        for (int i = 0; i != Columns.Length; i++)
                        {
                            DataColumn dc = new DataColumn();
                            dc.ColumnName = Convert.ToString(Columns[i]);
                            dataTable.Columns.Add(dc);
                        }
                        rowNo = rowNo + 1;
                    }
                    else
                    {

                        string[] ColumnsValue = line.Split(new string[] { "\t" }, StringSplitOptions.None);
                        for (int i = 0; i != ColumnsValue.Length; i++)
                        {
                            dr[i] = ColumnsValue[i];
                        }
                        dataTable.Rows.Add(dr);
                    }

                }
            }
            return dataTable;
        }
        catch (Exception e)
        {
              throw new Exception(e.Message);
        }

    }

そして、私がこのコードから得ている出力は次のとおりです。だから私を助けて!前もって感謝します!

4

1 に答える 1

0

私の提案は、WinHex (無料) のようなものをダウンロードして、問題を見つけるのに役立つ可能性がある 16 進形式でファイルを表示できるようにすることです。

これは単なる推測ですが、あなたのプログラムは生の 16 進数を読み取っていて、それを ASCII に変換するように指示されていないようです。編集または、読み取り元のファイルで使用されているエンコード形式。

于 2012-04-23T15:32:47.930 に答える