tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: テキストファイルのUNICODE変換
投稿日: 2008/11/11(Tue) 20:32
投稿者魔界の仮面弁士
> テキストファイルのUNICODE変換
そもそも、元ファイルの文字コードは何でしょうか?

> Dim parser As TextFieldParser
> parser = My.Computer.FileSystem.OpenTextFieldParser( _
>                                         TextBox1.Text, ",")
上記コードの場合、
 ・ASCII/英数字のみ
 ・UTF-8(BOMあり)
 ・UTF-8(BOMなし)
 ・UTF-16(BOMあり)
などのファイルは扱えるようですが、たとえば
 ・Shift_JIS(日本語を含む)
 ・UTF-16(BOMなし)
などの場合には使えないようです。


> Unicodeの変換をしなくてはならないかと思い、
化けないようにするためには、String として読み込む前に、元ファイルそのものを
変換しておいてください。
化けて取得した String を変換しようとしても、それは破損が進むだけです。


すなわち OpenTextFieldParser を使って処理するのであれば、事前に元ファイルを
 1) ReadAllBytes で Byte 配列に読み込んでおく。
 2) それを System.Text.Encoding.GetEncoding(文字コード).GetString にて
   String に変換。
 3) 変換結果を WriteAllText で UTF-8 ファイルとして保存。
 4) 保存しなおしたファイルを、OpenTextFieldParser で読み直す。
といった手順になるかと思います。


ファイル変換を行いたくないのであれば、OpenTextFieldParser を使うのは諦めて、
ReadAllText 等で元ファイルを直接読み取り、それを Split して切り出すようにするとか。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。