電子書籍の厳選無料作品が豊富!

Console.writeLineで全角文字列が1000戸ぐらい続くStringを出力する場合は文字化けしませんが、半角が1字でも混じると文字化けします。たとえば以下のようなコードです。

line = "アああああああああ【中略】あああああああああああああ"
Console.WriteLine(line)

出力結果のところどころに「ああ・あああ」となっている場所があります。なんとなかならないでしょうか?


Visual Studio 2003 / 2008
Visual Basic
Windows XP

A 回答 (1件)

再現できました。


どうも、1020バイトと1021バイト目に2バイト文字が入ると
文字化けするようですね。仕様でしょう
多分、Console.WriteLineは1020バイトづつ吐き出してくっつけて表示
を繰り返しているのだと思います。
試しに1020バイト目に1バイト文字を書くと文字化けは起きません。

これだと文字化けは起きない
Dim line As String = "a"

For i As Integer = 0 To 509
line &= "い"
Next

line &= "aい"

Console.WriteLine(line)

Using sw As New IO.StreamWriter("g:\あああ.txt", False, System.Text.Encoding.Default)
sw.Write(line)
End Using
    • good
    • 0
この回答へのお礼

どうも。Visual Studioのコンソールはだめってことですね。ファイル出力にでもします。

お礼日時:2010/02/22 23:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!