概要

WINDOWS10でOUTLOOKを使っていて、メールの本文をVBAでテキストファイルに保存後、Perlで処理しようとするときにテキストファイルのエンコードがUTF16でうまく処理できない。

VBAでテキストファイルに保存するときに、エンコードをSJISにすることで解決した。

コード

Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.CreateTextFile(FileName, True, False)
               
    .WriteLine objItem.Body
    .Close
                
End With

CreateTextFile(FileName, True, False)



の引数の3番目のFalseを与える、そうするとテキストファイルがSJISで保存される。

引用
unicode省略可能です。
Unicode ファイルと ASCII ファイルのどちらを作成するかを示すブール値を指定します。Unicode ファイルを作成する場合は真 (true) を、ASCII ファイルを作成する場合は偽 (false) を指定します。省略した場合は、ASCII ファイルが作成されます。

MSDNのCreateTextFileメソッドのページ
https://msdn.microsoft.com/ja-jp/library/cc428022.aspx?f=255&MSPPError=-2147217396

感想

perlでUTF16を読めればいいだろうと思ったのだが、面倒くさそうだった。

Windowsでperl使うと、SJISとかUTF16とか本題以外のところでひっかかる、俺がやりたいのは「メール本文の集計で、エンコードじゃねーんだよ」って思ったりします。英語圏の方だとこういう問題がないから進捗もすこぶる早いのかな?と思いました。

英数字データだけって、なんかTシャツ1枚的な身軽さを感じますよね。

よくもわるくもコンピュータってアメリカ育ち!!


Latest Article

 FXのチャートデータからMIDIを生成するプロジェクト h3,h4,h5{margin: 3rem 0;padding:.5rem;}
IntelliJ IDEAのターミナルをWSL にする方法 win10編 あっちこっちのVPSやAWSにSSHでちょっとだけ覗...
Golangで楽天をスクレイピングしてカラーミーCSV生成 楽天運営中のお客様がカラーミーにも出店す
GAE/PHPをIntelliJ IDEAでデバッグ、俺ならこうお世話になった Google App Engineの開発環境をつくって、IntelliJ I
IntelliJ IDEA 設定、2年目の初心者の俺ならこうやってる IntelliJ IDEAを購入(2018/02/26)して、約2年の初心...
カラーミー商品詳細ページSEO対策 構造化マークアップ