VB2005について教えてください。


以下はSHIFT JISのファイルを読み込んでSに代入しています。このSの値はSHIFT JISのままなのでしょうか?それともUNICODEなのでしょうか?


'"C:\test.txt"をShift-JISコードとして開く
Dim sr As New System.IO.StreamReader("C:\test.txt", _
System.Text.Encoding.GetEncoding(932))
'内容をすべて読み込む
Dim s As String = sr.ReadToEnd()
'閉じる
sr.Close()

'結果を出力する
Console.WriteLine(s)

回答の条件
  • 1人2回まで
  • 登録:2008/03/25 08:49:27
  • 終了:2008/03/25 19:28:24

回答(2件)

id:tarutatta No.1

tarutatta回答回数20ベストアンサー獲得回数02008/03/25 09:15:02

ポイント10pt

文字コードを気にする必要性が出るのは、「文字列 → バイト配列」と「バイト配列 → 文字列」を処理したい場合で、読み込んだ後にできあがった文字列については普通は意識する必要はありません。

例で言うと、バイト配列で記録されているファイルを読み込んで文字列にするときと、文字列をバイト配列に変換してファイルに書き込むときにそれぞれ文字コードを考える必要が出てきます。

C とか使ってるとたまにあるのですが、文字列 A が Shift_JIS 、文字列 B が EUC-JP とかだったりすると面倒なことになりますよね。ですから .NET Framework では、内部では特定のエンコーディングを使ってすべて管理しているはずです。

#最近の言語は多言語に対応するために内部で Unicode を使ってるのが多いです。

id:ken33jp No.2

ken33jp回答回数928ベストアンサー獲得回数132008/03/25 17:06:35

ポイント60pt

UNICODEです。

  • id:haruo-31
    UNICODEで何かまずいことがあるのでしょうか?
    読み込み⇒処理⇒書き出し という一連の処理で文字コードを意識する場面は、書き出し時のコードセットを指定する場合くらいでしょう。

    Len関数やらの文字列操作系関数では、それぞれちゃんと仕様が決まっていますから、特に内部処理形式を考える必要は無いと思いますよ。
  • id:mj99
    http://msdn2.microsoft.com/ja-jp/library/hfa3fa08.aspx
    http://msdn2.microsoft.com/ja-jp/library/system.string.aspx
    Unicodeだと書いてある

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません