Download pdf - 全角チルダ問題

Transcript
Page 1: 全角チルダ問題

全角チルダ問題@tsuda_ahr

LTDD#5 2014/7/5

2014/7/7 改訂2版

Page 2: 全角チルダ問題

今回のネタの発端

こんな書き込みを見つけまして。

Page 3: 全角チルダ問題

全角チルダ

Page 4: 全角チルダ問題

波ダッシュ

Page 5: 全角チルダ問題

違いがわかりましたね?

Page 7: 全角チルダ問題

答え)

どっちも全角チルダ(汗

Page 8: 全角チルダ問題

なんでこんなことに?

• しらん

Page 9: 全角チルダ問題

参考) 確かめかた (Windows の場合)

• 確かめたい文字をコピーします。

• WordPad を起動し、コピーした文字を貼り付けます。

• 確かめたい文字を一文字選択し、ALT + X を押します。

• コード (UCS-4) が表示されます。

• U+301C が波ダッシュ

• U+FF5E が全角チルダ

Page 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

Page 11: 全角チルダ問題

基礎知識2) ダッシュとは何か

• これではない (らしい)

A’• ダッシュとはこういうやつ (らしい)

これは「プライム」というのが正解らしい…

Page 12: 全角チルダ問題

ダッシュって何に使う記号?

• ダッシュ (emダッシュ)

文と文の間、字句と字句の間に用いられて、時間の経過を表す

単語の後に用いられて省略を表す

用例)

もう——だめだ。

たとえデスマーチになろうと ——

Page 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)

Page 14: 全角チルダ問題

Shift JIS (CP932) 時代

• 全角チルダはない。

• あったのは波ダッシュ。

• なので、全角/半角変換の際は、

~ (半角チルダ) は ~ (波ダッシュ) と交換してた ???

Page 15: 全角チルダ問題

Unicode になってから

~ 〜

全角チルダ( Yu Gothic )

波ダッシュ

( Arial Unicode MS )

Page 16: 全角チルダ問題

なんで?

• Unicode の例示字形を載せる際に間違えたらしい(汗

• Windows XP 以前の 波ダッシュ(U+301C) はこの字形。

• よって、波ダッシュを使用すると、今まで使っていた字形と違うもの

が表示されることになってしまう。

Page 17: 全角チルダ問題

しかし規格書の字形例示は、今なお変更なし?

http://www.unicode.org/charts/PDF/U3000.pdf

Page 18: 全角チルダ問題

規格はそうだが…

でも、さすがに

「〜」

は嫌ですよね?

Page 19: 全角チルダ問題

対策?

じゃあ波ダッシュ「〜」じゃなくて、全角チルダ「~」のほうを

使えばいいんじゃね?

いいことに気が付いた! ウハwww 俺天才wwwww

かくて Windows では 波ダッシュ が U+FF5C (=全角チルダ) に…

状況を予想するに、字形は Unicode 仕様書に準拠する以上変更ができないのに対して、・Shift JIS の 波ダッシュ を Unicode の何に対応させるかとか、・”~” の字形に相当する記号を MS-IME で何を候補として出すのかは、

規格があるわけではないので、”~”を 全角チルダに充てるのが一番ストレスがなかった、ってことではないかと…

Page 20: 全角チルダ問題

かくてこういう関係が成り立つ

Windows の場合

ASCII UTFSJIS

半角チルダ(0x7E)

全角チルダ(U+FF5E)

波ダッシュ(0x8160)

半角 - SJIS全角 変換

半角 - UTF全角 変換

波ダッシュ(U+301C)

使わない

SJIS全角 - UTF全角変換

Page 21: 全角チルダ問題

でも本来的にはこうだよね

半角チルダ(0x7E)

全角チルダ(U+FF5E)

波ダッシュ(0x8160)

SJIS全角 - UTF全角変換

半角 - UTF全角 変換

波ダッシュ(U+301C)

波ダッシュ同士が対応するべき

必要?(汗

ASCII UTFSJIS

SJIS全角 - UTF全角変換

半角 - SJIS全角 変換

Page 22: 全角チルダ問題

• 処理系によって、変換方法が違う(汗

現実はこう

Windows (CP932)の MAP 方法

Macとか? (ShiftJIS)の MAP 方法

UTFSJIS

波ダッシュ(0x8160)

波ダッシュ(U+301C)

全角チルダ(U+FF5E)

Page 23: 全角チルダ問題

何が起こるか?

• データベースのキャラクターが Shift JIS

• フロントエンド(Webページとか) は UTF

• Windows で入力した「~」はデータベースにどう記録されるのか?

• iPad で入力した「~」はデータベースにどう記録されるのか?

• 記録した文字を読みだして、それぞれの OS で表示させるとどうなる

のか?

Page 24: 全角チルダ問題

まとめ

• Unicode の例示字形が間違ったのが混乱の源。

• 波ダッシュを全角チルダに充てたことが罪。

• そもそも、なぜ ShiftJIS 時代になかった全角文字が存在するのか…

• いまだに全角文字が使用されること自体も罪。

• 半角カナは今すぐ消えるべき。

文字コードの変換は闇。

Page 25: 全角チルダ問題

ところで

全角チルダのコードですが、

U+FF5E

って、やけに後ろのほうだと思いません?

Page 26: 全角チルダ問題

こういうわけです。

Page 27: 全角チルダ問題

半角形/全角形

• 互換用の領域。

• 互換文字とは、既存の文字コードとの互換性と往復変換のためだけに

収録された文字

• ユニコードコンソーシアムは、互換文字は使わないことを推奨

つまり、この領域の文字は使わないほうがよいです。

(極力使わないでください)

Page 28: 全角チルダ問題

ご清聴ありがとうございました

Page 29: 全角チルダ問題

余談

• LT後に質問などで答えたことをまとめておきます。

Page 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

Page 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 いち (漢数字)

Page 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

Page 33: 全角チルダ問題

余談4) ¥記号とか

• この手の問題は、波ダッシュやダッシュに限らず、その他にもいろい

ろ出てきます。注意しましょう。

• ¥ 記号も同様です。

• 特に ¥ 記号は暗黙に変換されたりする場合があるので気を付けま

しょう。

¥ U+005C Reverse Solidus (Backslash)¥ U+00A5 Yen Sign¥ U+FFE5 Fullwidth Yen Sign


Recommended