電気ウナギ的○○

About Home

VB.NETでUTF-16(Big-Endian)からShift_JISへの変換

shinoda (2010年10月 5日 00:22)

現在作成中の VB.NET プログラムで扱うファイルが UTF-16 の、しかも Big-Endian で書かれているのを今日知った。(^^;

そのデータをインターネット上から取得して、他のプログラムで使用するためにディスク上に保管するのだが、その、「他のプログラム」が「Shift_JIS で書かれているファイル」を期待しているようである。

つーことで、UTF-16(Big-Endian) のファイルを Shift_JIS に変換して出力する処理を試しに書いてみた。

Imports System
Imports System.IO
Imports System.Text
Imports System.Collections

Module Module1

    Sub Main()

        Dim value As String
        value = FileRead("U16BE.txt")
        FileWrite("SJIS.txt", value)

    End Sub

    Function FileRead(ByVal Fn As String) As String
        '---------------------------------------------------------
        ' UTF-16(Big-Endian) 形式で書かれたテキストを読み込む
        '---------------------------------------------------------

        Dim sr As New StreamReader(Fn, Encoding.BigEndianUnicode)
        Dim val As String = sr.ReadToEnd()
        sr.Close()

        Return val

    End Function

    Sub FileWrite(ByVal Fn As String, ByVal Value As String)
        '---------------------------------------------------------
        ' テキストを Shift_JIS 形式で出力する
        '---------------------------------------------------------

        Dim val As StreamWriter = New StreamWriter(New FileStream(Fn, FileMode.Create), Encoding.GetEncoding("shift_jis"))
        val.Write(Value)
        val.Close()

    End Sub

End Module

これで、問題無し。

まあ、よく考えたら、確か VB.NET の内部処理は UTF-16 で行われているので、うまくいって当たり前だわな。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/1304

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE