タイトル : 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 して切り出すようにするとか。 |