全角ダブルクォーテーションの取り扱いはめんどくさい

全角のダブルクォーテーション

全角のダブルクォーテーションを文字列として扱うのに苦労したので、覚書的に記しておく。

普通に文字列として書いてみる

次のように書いてみる。

str = "“"

f:id:akashi_keirin:20181018220426j:plain

この状態で、[Enter]をふわっと押してみる。すると、

f:id:akashi_keirin:20181018220437j:plain

おわかりだろうか。

勝手に半角の「"」にされてしまった上、ご丁寧にエスケープの「"」まで付加されているではないか。

イミディエイトで調べてみる

今度は、イミディエイト・ウインドウに

?Asc("“")

f:id:akashi_keirin:20181018220447j:plain

と入力して[Enter]に指を叩きつける。

f:id:akashi_keirin:20181018220455j:plain

ファッ!?

仕方がないので、「」にエスケープ用の「"」を添えてみる。

?Asc(""“")

こう打ち込んで、[Enter]を突く。

f:id:akashi_keirin:20181018220504j:plain

34」が返った。しかし、正の数が返ったということは、半角文字だということにならないか?

んで、今度は、

?Chr(34)

と入力して[Enter]をバチコーン!

f:id:akashi_keirin:20181018220510j:plain

ほれ、やっぱり半角の「"」に改竄されてしまった。何安倍首相に忖度しとるねん。お前は財務省か。

文字コードでやってみる

こうなったら、文字コードで直接取得するほかあるまい。

akashi-keirin.hatenablog.com

このときにお世話になったコチラのサイトにある文字コード表を参考にする。

f:id:akashi_keirin:20181018220518j:plain

全角ダブルクォーテーション「」及び「」の文字コードは、16進数でそれぞれ「8167」、「8168」。

よって、イミディエイトに

?Chr(&H8167)

?Chr(&H8168)

と入力して[Enter]をひっぱたく。

f:id:akashi_keirin:20181018220525j:plain

f:id:akashi_keirin:20181018220534j:plain

無事、全角ダブルクォーテーションが取得できた。

おわりに

何で全角ダブルクォーテーションを半角ダブルクォーテーションに自動変換する必要があるのか、いまいちよくわからない。