...

全角チルダ問題

by tsudaa

on

Report

Category:

Software

Download: 0

Comment: 0

84,450

views

Comments

Description

全角チルダ問題
Download 全角チルダ問題

Transcript

  • 1. 全角チルダ問題 @tsuda_ahr LTDD#5 2014/7/5 2014/7/7 改訂2版
  • 2. 今回のネタの発端 こんな書き込みを見つけまして。
  • 3. 全角チルダ ~
  • 4. 波ダッシュ 〜
  • 5. 違いがわかりましたね?
  • 6. 問い) どっちが波ダッシュ? ~ ~
  • 7. 答え) どっちも全角チルダ(汗
  • 8. なんでこんなことに? • しらん
  • 9. 参考) 確かめかた (Windows の場合) • 確かめたい文字をコピーします。 • WordPad を起動し、コピーした文字を貼り付けます。 • 確かめたい文字を一文字選択し、ALT + X を押します。 • コード (UCS-4) が表示されます。 • U+301C が波ダッシュ • U+FF5E が全角チルダ
  • 10. 基礎知識1) チルダとは何か? • こういうやつらしい。 ÃÕÑ • 鼻音に関する音をあらわす、ダイアクリティカルマークの一種 • ダイアクリティカルマークってこんなやつら (よくしらない) À Á Â Ä Å Ă Ą Ā http://ja.wikipedia.org/wiki/%E3%83%80%E3%82%A4%E3%82%A2%E3%82%AF%E3%83%AA%E3%83 %86%E3%82%A3%E3%82%AB%E3%83%AB%E3%83%9E%E3%83%BC%E3%82%AF
  • 11. 基礎知識2) ダッシュとは何か • これではない (らしい) A’ • ダッシュとはこういうやつ (らしい) — これは「プライム」というのが正解らしい…
  • 12. ダッシュって何に使う記号? • ダッシュ (emダッシュ) 文と文の間、字句と字句の間に用いられて、時間の経過を表す 単語の後に用いられて省略を表す 用例) もう——だめだ。 たとえデスマーチになろうと ——
  • 13. ダッシュ(enダッシュ) /ハイフン/マイナスの違い • 1 – 5 (ダッシュ) 1 から 5 • 1 – 5 (ハイフン) 1 の 5 • 1 – 5 (マイナス) 1 ひく 5 わけがわからん(汗 http://ja.wikipedia.org/wiki/%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5 _(%E8%A8%98%E5%8F%B7)
  • 14. Shift JIS (CP932) 時代 • 全角チルダはない。 • あったのは波ダッシュ。 • なので、全角/半角変換の際は、 ~ (半角チルダ) は ~ (波ダッシュ) と交換してた ???
  • 15. Unicode になってから ~ 〜 全角チルダ ( Yu Gothic ) 波ダッシュ ( Arial Unicode MS )
  • 16. なんで? • Unicode の例示字形を載せる際に間違えたらしい(汗 • Windows XP 以前の 波ダッシュ(U+301C) はこの字形。 • よって、波ダッシュを使用すると、今まで使っていた字形と違うもの が表示されることになってしまう。
  • 17. しかし規格書の字形例示は、今なお変更なし? http://www.unicode.org/charts/PDF/U3000.pdf
  • 18. 規格はそうだが… でも、さすがに 「〜」 は嫌ですよね?
  • 19. 対策? じゃあ波ダッシュ「〜」じゃなくて、全角チルダ「~」のほうを 使えばいいんじゃね? ↓ いいことに気が付いた! ウハwww 俺天才wwwww かくて Windows では 波ダッシュ が U+FF5C (=全角チルダ) に… 状況を予想するに、字形は Unicode 仕様書に準拠する以上変更ができないのに対して、 ・Shift JIS の 波ダッシュ を Unicode の何に対応させるかとか、 ・”~” の字形に相当する記号を MS-IME で何を候補として出すのかは、 規格があるわけではないので、”~”を 全角チルダに充てるのが一番ストレスがなかった、ってことではないかと…
  • 20. かくてこういう関係が成り立つ Windows の場合 ASCII UTFSJIS 半角チルダ (0x7E) 全角チルダ (U+FF5E) 波ダッシュ (0x8160) 半角 - SJIS全角 変換 半角 - UTF全角 変換 波ダッシュ (U+301C) 使わない SJIS全角 - UTF全角 変換
  • 21. でも本来的にはこうだよね 半角チルダ (0x7E) 全角チルダ (U+FF5E) 波ダッシュ (0x8160) SJIS全角 - UTF全角 変換 半角 - UTF全角 変換 波ダッシュ (U+301C) 波ダッシュ同士が 対応するべき 必要?(汗 ASCII UTFSJIS SJIS全角 - UTF全角 変換 半角 - SJIS全角 変換
  • 22. • 処理系によって、変換方法が違う(汗 現実はこう Windows (CP932) の MAP 方法 Macとか? (ShiftJIS) の MAP 方法 UTFSJIS 波ダッシュ (0x8160) 波ダッシュ (U+301C) 全角チルダ (U+FF5E)
  • 23. 何が起こるか? • データベースのキャラクターが Shift JIS • フロントエンド(Webページとか) は UTF • Windows で入力した「~」はデータベースにどう記録されるのか? • iPad で入力した「~」はデータベースにどう記録されるのか? • 記録した文字を読みだして、それぞれの OS で表示させるとどうなる のか?
  • 24. まとめ • Unicode の例示字形が間違ったのが混乱の源。 • 波ダッシュを全角チルダに充てたことが罪。 • そもそも、なぜ ShiftJIS 時代になかった全角文字が存在するのか… • いまだに全角文字が使用されること自体も罪。 • 半角カナは今すぐ消えるべき。 文字コードの変換は闇。
  • 25. ところで 全角チルダのコードですが、 U+FF5E って、やけに後ろのほうだと思いません?
  • 26. こういうわけです。
  • 27. 半角形/全角形 • 互換用の領域。 • 互換文字とは、既存の文字コードとの互換性と往復変換のためだけに 収録された文字 • ユニコードコンソーシアムは、互換文字は使わないことを推奨 つまり、この領域の文字は使わないほうがよいです。 (極力使わないでください)
  • 28. ご清聴ありがとうございました
  • 29. 余談 • LT後に質問などで答えたことをまとめておきます。
  • 30. 縦書きの例示字形を 90° 回転させたから。 余談1) なぜ波ダッシュの例示字形を間違ったか? 〜 〜 ちなみに縦/横 変換はいろいろなパターンがあるのです… 変換なし … 一般の文字 左下⇔右上移動 … 句点/読点 90°回転 … 括弧、鍵括弧 多分、波ダッシュは例外ケース。 http://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80%E3%83%83%E3%82%B7%E3 %83%A5#Unicode.E3.81.AB.E9.96.A2.E9.80.A3.E3.81.99.E3.82.8B.E5.95.8F.E9.A1.8C
  • 31. 余談2) ダッシュは日本語? • ダッシュ記号は、一般句読点(General Punctuation)と呼ばれる U+2000~U+206F の領域にあります。 • 日本語のグループではありません。 • ちなみに ”横の線” な記号は、たとえば以下のものがあります。 (以下がすべてではない) - U+002D Hyphen-Minus ‐ U+2010 Hyphen - U+2011 Non-Breaking Hyphen ‐ U+2012 Figure Dash – U+2013 En Dash — U+2014 Em Dash ― U+2015 Horizontal Bar ー U+30FC Katakana-Hiragana Prolonged Sound Mark (長音記号) ─ U+2500 Box Drawings Light Horizontal (罫線) ━ U+2501 Box Drawings Heavy Horizontal (罫線) 一 U+4E00 いち (漢数字)
  • 32. 余談3) 長音記号はいつから使われ始めたか? • わかりません(汗 • 歴史的かなづかいでは使われてないよね? • 多分明治から。 http://ja.wikipedia.org/wiki/%E9%95%B7%E9%9F%B3%E7%AC%A6#.E9.95.B7.E9.9F.B3.E7 .AC.A6.E3.81.AE.E6.AD.B4.E5.8F.B2 • 調べたところによると、初出は新井白石らしい。 http://www.shochian.com/cho‘onpu.htm
  • 33. 余談4) ¥記号とか • この手の問題は、波ダッシュやダッシュに限らず、その他にもいろい ろ出てきます。注意しましょう。 • ¥ 記号も同様です。 • 特に ¥ 記号は暗黙に変換されたりする場合があるので気を付けま しょう。 ¥ U+005C Reverse Solidus (Backslash) ¥ U+00A5 Yen Sign ¥ U+FFE5 Fullwidth Yen Sign
  • Fly UP