• 締切済み

UTF-8ファイルの文字化けについて

UTF-8のファイルをADODB.STREAMを使って読み込むマクロを組みました。 読み込むファイルはいくつかのパターンがあるのですが、 正常に処理できるパターンのファイルと、できないパターンのファイルがあるようなんです。 そのファイルをメモ帳で開いて見比べてみると、 正常に処理できるファイルは 2013,01,25 ・・・ヘッダー行 タイトル1,タイトル2,タイトル3 ・・・タイトル行 aaa,BBB,123           ・・・データ行 bbb,CCC,25 という形式になっており、 エラーになるファイルは、 2013,01,25 ・・・ヘッダー行 "タイトル1","タイトル2","タイトル3" ・・・タイトル行 aaa,BBB,123           ・・・データ行 bbb,CCC,25 というふうに、タイトル行のみがダブルクォーテーションで囲まれていました。 エラーになるファイルは、 ヘッダー行は正常に読み込まれているみたいなのですが、 タイトル行以下が全て文字化けしているようなんです。 やはりダブルクォーテーションの影響なのでしょうか。 ご教授いただけると助かります。 よろしくお願いいたします。

みんなの回答

回答No.4

> UTF-8のファイルをADODB.STREAMを使って読み込むマクロを組みました。 というのは、 http://d.hatena.ne.jp/niemands/20090316/1237225383 にあるような感じのコーディングですか? で、 > マクロ実行を中断した際、変数の中身を見てみると、文字化けしていました。 というのは、ReadTextで1行分を読み込んだ文字列変数の中身が文字化け していたのですか? であれば、この時点で文字化けしている原因は、ダブルクォーテーションが 使われているか否かとは関係ありません。ここではダブルクォーテーション に特別な意味は無く、ただの文字として1行分読み込んでいるだけです。 この場合、元のテキストファイルがUTF-8でないか、CharSetの指定が 正しく"UTF-8"を指定していないかが文字化けの原因だと思います。 文字化けしている変数が、読み込んだ一行分をカンマ区切りで分解した後の 変数なら、その分解処理のダブルクォーテーションの扱いに問題が あるのかもしれません。 いずれにしても、「ADODB.STREAMを使って読み込むマクロを組みました」 とだけ書かれてあって、実際のコーディングが提示されていないので、 それ以上のことはわかりません。

すると、全ての回答が全文表示されます。
  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.3

処理するコンピュータのOSと、格納システムの文字セットはUTF-8ですか? コンピュータと格納システムがANSIですと、ファイルはANSIでなければなりません。

すると、全ての回答が全文表示されます。
noname#206842
noname#206842
回答No.2

なんのマクロなのかわかりませんが、変数の扱い方が間違っているのでは?・・・ 数値変数と文字変数のちがい?・・・ ""で囲まれているのは、CSVを取り込むさい、文字変数だからでは?・・・

maria2013-25
質問者

補足

マクロはVBA(EXCEL)です。変数はstringで、マクロ実行を中断した際、変数の中身を見てみると、文字化けしていました。

すると、全ての回答が全文表示されます。
  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

処理するコンピュータのOSと、格納システムの文字セットはUTF-8ですか? ちなみにWindowsならANSIですよ。 メモ帳では自動変換されますから化けていないですけどね。

maria2013-25
質問者

補足

ファイルがUTF-8というのは、それを作成するシステムの仕様で確認しました。メモ帳で読みこんだ際、名前をつけて保存をしようとすると、文字コードがUTF-8となっていたので、UTF-8で間違いないかと思うのですが。

すると、全ての回答が全文表示されます。

関連するQ&A