◆ はじめに

2015年9月、生まれて初めての海外旅行に行きます。
行先は台湾、3泊4日。社員旅行です。

初海外なので、色々とわからないことだらけです。
台湾の通貨は?物価は?

と、いうことで早速調べてみました。
------------------------------------------------------------------
◆ 台湾の通貨

・ニュー台湾ドル(NTD)
・新台幣(シンタイビュー)
・元(ユエン)
・圓(ユエン)

色々な表記/言い方があるようですが、どれも同じだそうです。
※中国の元とは別物らしい。奥が深いですね…。

ちなみにお札と硬貨の種類は以下のようです。

・お札
 100元、200元、500元、1000元、2000元
・硬貨
 1元、5元、10元、20元、50元(0.5元というのもある?)
------------------------------------------------------------------
◆ 台湾の物価

物価調査の前に、前提として日本円換算の目安を調べました。
2015年7月31日 0:29時点で1元=約3.93円だそうです。

少し高めに見積もるのが私流なので、以降はざっくり1元=4円と考えます。
さて、それでは物価の調査に移ります。

・飲食代
 コンビニでの食品、飲料水の値段は日本より2~4割安いものが多そうです。
 ですが、物によっては同じぐらいの値段の物もありそうです。

 例えば、500mlのジュースが日本だと150円ぐらいですが台湾は100円。
 お弁当が日本だと500円前後なのが台湾だと300円前後。
 なぜかおにぎりは台湾でも110円~150円程度という感じでした。

 つまり、台湾ではジュースを1本買うのに100円÷4円=25元。
 20元硬貨 + 5元硬貨を準備すれば良いんですね。

 だけど、ジャラジャラと小銭を持ち歩くのも邪魔そうなので
 50元硬貨(200円相当)を10枚ぐらい準備しておけば良さそうですね。

 ちなみにマクドナルドのビッグマックセットが99元(396円)ということなので、
 やはり4割程度安い傾向が強いんでしょうか。

 要するに台湾では日本と同等額を出せば、約2倍食べ飲みできそうですね。

・交通費
 地下鉄が20元(80円)~、バスが15元(60円)~と割安です。
 要するにお金は心配せずに公共交通機関は使えそうってことですね。

 ですが、残念なことに今回は社員旅行で貸切バス移動が多いので
 あまり自腹でお世話になる機会はなさそうです。

 問題はタクシーです。
 夜遊んだ後、ホテルへの移動などで使うことを想定しておきたいですね。
 台湾のタクシーの初乗りは70元(280円)、深夜は90元(360円)だそうです。
 安心の安さでしたね。

 ですが、日本人相手だと深夜料金だと偽って更に20元上乗せ請求された。
 とか、お釣りはチップだから返せない。とか、足元見られることもあるそうです。
 現地の言葉を話せる自信もないので、メーター見てちょっきり払うのが良いのかな?
 まあ、20元(80円)程度ならボッタクリとも思える額じゃないので良いですが…(笑

・マッサージ
 日本でもよく見かける台湾式マッサージの看板。
 台湾と言えば、本場のマッサージを受けることも検討しなければ・・・。

 そういうことで、一応調べてみました。

 40分足裏マッサージ : 600元(2,400円)前後
 60分全身マッサージ : 1,000元(4,000円)前後

 あれ?あまり日本と変わらないですね。 
 ちなみに施術のレベルも担当者によりけり(当たり外れ有り)だそうです。

 あまりお得感はなさそうなので、よほど自由行動の時にやることがなくて
 思い出作りがしたくなったら行こうかな・・・程度ですね。

・ナイトライフ
 森林北路というところに日本人向けのお店が密集しているようです。
 日本語が堪能な女の子も多いという噂です。

 種類は、クラブ/デリヘル/ポン引きからのホテヘル/ピンサロ/サウナが主流。
 ※クラブはお持ち帰り可能なキャバクラというイメージだそうです。
 ※サウナは日本と同じサウナですが、奥に特別なお部屋があるのが差異なんだそうです。
  純粋にお風呂(サウナ)利用目的だけでも使えるようです。

 ですが、問題はその料金。
 完全に日本と同額程度か、むしろ割高でした。
 (要するに15,000円~30,000円ぐらいの相場です。)

 私は結婚しているので、上記のようなプレイ系よりは飲んで楽しむ程度で十分。
 と、思いスナック(日本で言うキャバクラ)も調べて見ました。

 こちらも2時間で2,200元(8,800円)程度でした。
 女性の飲み物も含まれない場合が多いため、日本と同額程度でしょうかね。

 台湾のナイトライフは、1日だけスナック(1セット)を堪能で十分そうですね。
------------------------------------------------------------------
◆ まとめ

総じて、全体的には物価は安そうです。
ですが、同額程度もしくは割高なものも一部有りそうなので注意が必要そうです。
※特にナイトライフについては、割高な印象です。

今回は3泊4日ですが、日程を見たところ実質2日は移動日みたいなものでした。
また、1日は全体行動だったのでほとんど会社が費用を持つと考えると、
自由行動の1日ぐらいしか大きなお金の使いどころはなさそうです。

4日分の雑費程度に多く見積もっても1日2,000円(500元)と考えて
8,000円(2,000元)を準備して、自由行動の時だけ20,000円(5,000元)用意。

約3万円のお小遣いを用意すれば、今回は足りそうな感じですね。
大体の相場がわかったので、これで両替のプランも立てられそうです。
◆ 趣旨

ファイルの種類を拡張子以外で判別したい時があります。

例えば、Webアプリケーションの開発にて
クライアントからアップロードされたファイルを扱うことは多々あると思います。

ここで、拡張子でファイル種別を判断すると偽装が見抜けません。
※本当はエクセル(xlsx)ファイルなのに、拡張子だけワード(docx)に変えたなど。

そこで、MimeTypeという情報で判断すれば、こんな偽装は見抜けるのでは?と、思い。
早速、色々と調査してみました。

今回はJava言語の中でMimeTypeの判定を行いたかったので、
そこそこ検索にHitしたMime-Utilというライブラリに着眼してみました。


------------------------------------------------------------------------
◆ 準備

Mime-Util
 ・mime-util-2.1.3.jar

以下のライブラリに依存するようなので一緒に準備します。

slf4j
 ・slf4j-api-1.7.12.jar
 ・slf4j-log4j12-1.7.12.jar
log4j
 ・log4j-1.2.17.jar

------------------------------------------------------------------------
◆ プログラム

import java.io.File;

import eu.medsea.mimeutil.MimeUtil;

public class TestMain {

public static void main(String[] args) {
File file = new File(args[0]);
checkMimeType(file);
}

private static void checkMimeType(File target) {
// ディレクトリの場合は中身をループする
if (target.isDirectory()) {
File[] files = target.listFiles();
for (File file : files) {
checkMimeType(file);
}
}
// MimeTypeを取得して標準出力へ
MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector");
System.out.println(target.getName() + " = " + MimeUtil.getMimeTypes(target));
}
}

------------------------------------------------------------------------
◆ 動作結果

プログラムの第1引数に"c:\testData"を指定して、
そのディレクトリ配下のファイルに対するMimeType取得結果です。
※今回はWindows7でファイルを作り、Windows7でプログラム実行しています。

 test.bmp = application/octet-stream
 test.docx = application/octet-stream
 test.txt = application/octet-stream
 test.xlsx = application/zip
 testData = application/directory

※"application/octet-stream"の結果は判別不明を意味するそうです。

testDataがディレクトリということ以外に正解がないですね…。

------------------------------------------------------------------------
◆ まとめ

どうやら、MimeUtilでMimeTypeの判定を行うのは、まだ実用化できそうにないですね。

MimeUtilの使い方や環境設定、ファイル準備手順に問題があるかもしれませんが、
少なくとも同様のファイル準備手順(新規作成(X) → エクセル etc..)でも、
Linux上で扱えるfileコマンドは、高精度でMimeTypeを判定できた記憶があります。

LinuxでもWindowsでもOSを選ばず、Java言語の中でMimeTypeを高精度に解釈する手法。
課題が残ってしまいました。