全角ダブルクォーテーションの取り扱いはめんどくさい
全角のダブルクォーテーション
全角のダブルクォーテーションを文字列として扱うのに苦労したので、覚書的に記しておく。
普通に文字列として書いてみる
次のように書いてみる。
str = "“"
この状態で、[Enter]をふわっと押してみる。すると、
おわかりだろうか。
勝手に半角の「"
」にされてしまった上、ご丁寧にエスケープの「"
」まで付加されているではないか。
イミディエイトで調べてみる
今度は、イミディエイト・ウインドウに
?Asc("“")
と入力して[Enter]に指を叩きつける。
ファッ!?
仕方がないので、「“
」にエスケープ用の「"
」を添えてみる。
?Asc(""“")
こう打ち込んで、[Enter]を突く。
「34
」が返った。しかし、正の数が返ったということは、半角文字だということにならないか?
んで、今度は、
?Chr(34)
と入力して[Enter]をバチコーン!
ほれ、やっぱり半角の「"
」に改竄されてしまった。何安倍首相に忖度しとるねん。お前は財務省か。
文字コードでやってみる
こうなったら、文字コードで直接取得するほかあるまい。
このときにお世話になったコチラのサイトにある文字コード表を参考にする。
全角ダブルクォーテーション「“
」及び「”
」の文字コードは、16進数でそれぞれ「8167
」、「8168
」。
よって、イミディエイトに
?Chr(&H8167)
、
?Chr(&H8168)
と入力して[Enter]をひっぱたく。
無事、全角ダブルクォーテーションが取得できた。
おわりに
何で全角ダブルクォーテーションを半角ダブルクォーテーションに自動変換する必要があるのか、いまいちよくわからない。