Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
全角チルダ問題
Search
tsuda.a
July 05, 2014
Programming
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
全角チルダ問題
全角チルダ問題
tsuda.a
July 05, 2014
More Decks by tsuda.a
See All by tsuda.a
Git を GUI で使う話
tsudaahr
0
130
マジカルインクリメントと指数表記
tsudaahr
0
280
バックアップしていますか?
tsudaahr
0
170
RDB以前のファイル設計の話でもしようか(ぇ
tsudaahr
0
180
NPUわからん
tsudaahr
0
230
計算量オーダーの話
tsudaahr
1
480
クラウド初学者が抱える不安について
tsudaahr
0
470
キューとは何か
tsudaahr
0
300
等幅は死んだ(ぇ
tsudaahr
0
150
Other Decks in Programming
See All in Programming
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
210
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
120
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
270
Java 27新機能 / Java 27 new features
kishida
2
140
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
340
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
690
速習iPhone Duo対応
yuukiw00w
1
310
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
190
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
280
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
620
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
560
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
200
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
4k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
A designer walks into a library…
pauljervisheath
211
25k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
800
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
270
First, design no harm
axbom
PRO
2
1.3k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
990
Skip the Path - Find Your Career Trail
mkilby
1
230
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.8k
Transcript
全角チルダ問題 @tsuda_ahr LTDD#5 2014/7/5
今回のネタの発端 こんな書き込みを見つけまして。
全角チルダ ~
波ダッシュ 〜
違いがわかりしたね?
問い) どっちが波ダッシュ? ~ ~
答え) どっちも全角チルダ(汗
なんでこんなことに? • しらん
参考) 確かめかた (Windows の場合) • 確かめたい文字をコピーします。 • WordPad を起動し、コピーした文字を貼り付けます。 •
確かめたい文字を一文字選択し、ALT + X を押します。 • コード (UCS-4) が表示されます。 • U+301C が波ダッシュ • U+FF5E が全角チルダ
基礎知識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
基礎知識2) ダッシュとは何か • これではない (らしい) A’ • ダッシュとはこういうやつ (らしい) —
これは「プライム」というのが正解らしい…
ダッシュって何に使う記号? • ダッシュ (emダッシュ) 文と文の間、字句と字句の間に用いられて、時間の経過を表す 単語の後に用いられて省略を表す 用例) もう——だめだ。 たとえデスマーチになろうと ——
ダッシュ(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)
Shift JIS (CP932) 時代 • 全角チルダはない。 • あったのは波ダッシュ。 • なので、全角/半角変換の際は、
~ (半角チルダ) は ~ (波ダッシュ) と交換してた ???
Unicode になってから ~ 〜 全角チルダ ( Yu Gothic ) 波ダッシュ
( Arial Unicode MS )
なんで? • Unicode の例示字形を載せる際に間違えたらしい(汗 • Windows XP 以前の 波ダッシュ(U+301C) はこの字形。
• よって、波ダッシュを使用すると、今まで使っていた字形と違うもの が表示されることになってしまう。
しかし規格書の字形例示は、今なお変更なし? http://www.unicode.org/charts/PDF/U3000.pdf
規格はそうだが… でも、さすがに 「〜」 は嫌ですよね?
対策? じゃあ波ダッシュ「〜」じゃなくて、全角チルダ「~」のほうを 使えばいいんじゃね? ↓ いいことに気が付いた! ウハwww 俺天才wwwww かくて Windows では
波ダッシュ が U+FF5C (=全角チルダ) に… 状況を予想するに、字形は Unicode 仕様書に準拠する以上変更ができないのに対して、 ・Shift JIS の 波ダッシュ を Unicode の何に対応させるかとか、 ・”~” の字形に相当する記号を MS-IME で何を候補として出すのかは、 規格があるわけではないので、”~”を 全角チルダに充てるのが一番ストレスがなかった、ってことではないかと…
かくてこういう関係が成り立つ Windows の場合 ASCII UTF SJIS 半角チルダ (0x7E) 全角チルダ (U+FF5E)
波ダッシュ (0x8160) 半角 - SJIS全角 変換 半角 - UTF全角 変換 波ダッシュ (U+301C) 使わない SJIS全角 - UTF全角 変換
でも本来的にはこうだよね 半角チルダ (0x7E) 全角チルダ (U+FF5E) 波ダッシュ (0x8160) SJIS全角 - UTF全角
変換 半角 - UTF全角 変換 波ダッシュ (U+301C) 波ダッシュ同士が 対応するべき 必要?(汗 ASCII UTF SJIS SJIS全角 - UTF全角 変換 半角 - SJIS全角 変換
• 処理系によって、変換方法が違う(汗 現実はこう Windows (CP932) の MAP 方法 Macとか? (ShiftJIS)
の MAP 方法 UTF SJIS 全角チルダ (U+FF5E) 波ダッシュ (0x8160) 波ダッシュ (U+301C)
何が起こるか? • データベースのキャラクターが Shift JIS • フロントエンド(Webページとか) は UTF •
Windows で入力した「~」はデータベースにどう記録されるのか? • iPad で入力した「~」はデータベースにどう記録されるのか? • 記録した文字を読みだして、それぞれの OS で表示させるとどうなる のか?
まとめ • Unicode の例示字形が間違ったのが混乱の源。 • 波ダッシュを全角チルダに充てたことが罪。 • そもそも、なぜ ShiftJIS 時代になかった全角文字が存在するのか…
• いまだに全角文字が使用されること自体も罪。 • 半角カナは今すぐ消えるべき。 文字コードの変換は闇。
ところで 全角チルダのコードですが、 U+FF5E って、やけに後ろのほうだと思いません?
こういうわけです。
半角形/全角形 • 互換用の領域。 • 互換文字とは、既存の文字コードとの互換性と往復変換のためだけに 収録された文字 • ユニコードコンソーシアムは、互換文字は使わないことを推奨 つまり、この領域の文字は使わないほうがよいです。 (極力使わないでください)
ご清聴ありがとうございました
余談 • LT後に質問などで答えたことをまとめておきます。
余談1) なぜ波ダッシュの例示字形を間違ったか? 縦書きの例示字形を 90° 回転させたから。 〜 〜 ちなみに縦/横 変換はいろいろなパターンがあるのです… 変換なし
… 一般の文字 左下⇔右上移動 … 句点/読点 90°回転 … 括弧、鍵括弧 多分、波ダッシュは例外ケース。
余談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 いち
余談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
余談4) ¥記号とか • この手の問題は、波ダッシュやダッシュに限らず、その他にもいろい ろ出てきます。注意しましょう。 • ¥ 記号も同様です。 • 特に
¥ 記号は暗黙に変換されたりする場合があるので気を付けま しょう。 ¥ U+005C Reverse Solidus (Backslash) ¥ U+00A5 Yen Sign ¥ U+FFE5 Fullwidth Yen Sign