3

私は次のように主に漢字を含む文字列を持っています:

string sentence = "我想找到从夏洛特飞往拉斯维加斯,让站在圣路易斯";

文を文字ごとに分割するにはどうすればよいですか?最終的には、文字列を取得して、次のように各文字が独自の行にあるファイルに書き込むことができるようにしたいと思います。

我
想
找
到
从
夏
洛
特
飞
往
拉
斯
维
加
斯
,
让
站
在
圣
路
易
斯

私はこれをやってみました:

StringBuilder s = new StringBuilder();
foreach (char character in sentence.ToCharArray())
{
    s.Append(character + '\n');
}
string output = s.ToString();

StreamWriter writer = new StreamWriter("test.txt", false, Encoding.UTF8);
writer.Write(output);
writer.Close();

...しかし、何らかの理由で、漢字を書く代わりに、

   29252242105020184228092794129315391442445825299260413251021162260416530235763314592232222317363452614126041

...代わりにファイルに。ただし、

StreamWriter writer = new StreamWriter("text.txt", false, Encoding.UTF8);
writer.Write(sentence);
writer.Close();

...中国語の文をファイルに正常に書き込むことができるので、ファイルへの書き込み方法に問題がないことはわかっています。

4

2 に答える 2

6

問題はそれかもしれないと思います(文字+'\ n'); 整数として解釈されています。おそらく、その行にキャストを追加するか、次のように2つの別々の追加を作成しようとします。

s.Append(character);
s.Append('\n');
于 2012-07-05T22:39:50.220 に答える
1
        var sentence = "我想找到从夏洛特飞往拉斯维加斯,让站在圣路易斯";
        var chars = sentence.ToCharArray();

        using (var writer = new StreamWriter("test.txt", false, Encoding.UTF8))
        {
            foreach (var c in chars)
            {
                writer.WriteLine(c);
            }

            writer.Close();
        }

私にとってはうまくいく

于 2012-07-05T22:59:08.180 に答える