サイト内の移動
新規投稿
当年度ブログ内の検索
カレンダー
S M T W T F S
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
<<  2024 - 11  >>


2024 - 1 2 3 4 5 6 7 8 9 10 11 12
2023 - 1 2 3 4 5 6 7 8 9 10 11 12
2022 - 1 2 3 4 5 6 7 8 9 10 11 12
2021 - 1 2 3 4 5 6 7 8 9 10 11 12
2020 - 1 2 3 4 5 6 7 8 9 10 11 12
2019 - 1 2 3 4 5 6 7 8 9 10 11 12
2018 - 1 2 3 4 5 6 7 8 9 10 11 12
2017 - 1 2 3 4 5 6 7 8 9 10 11 12
2016 - 1 2 3 4 5 6 7 8 9 10 11 12
2015 - 1 2 3 4 5 6 7 8 9 10 11 12
2014 - 1 2 3 4 5 6 7 8 9 10 11 12
2013 - 1 2 3 4 5 6 7 8 9 10 11 12
2012 - 1 2 3 4 5 6 7 8 9 10 11 12
2011 - 1 2 3 4 5 6 7 8 9 10 11 12
2010 - 1 2 3 4 5 6 7 8 9 10 11 12
分類
月別の記録
状態
現在: ゲストモード

同型 異コード文字の恐怖 波ダッシュ・全角チルダ
昔、はまったと言えば、
  「 printf("%d", i); 」
でエラーが出る理由に気づけなかったことだが、理由は見た目ではわからない漢字コードである全角空白が含まれていたこと。"@"なるエラーが出たのも、全角空白はShift-JISコードで 0x8040 で2バイト目の 0x40 が @ のコードだった。

何々「から」なんて使われる「~」であるが2つある(使用書体によっては見た目も同じ)
調べを進めると厳密には同じじゃなく「波ダッシュ」と「全角チルダ」と呼ばれていた。

続きを読む ≫
波ダッシュ:"~" UTF-8 0xEF, 0xBD, 0x9E / Shifit-JIS 0x8160
全角チルダ:"〜" UTF-8 0xE3, 0x80, 0x9C / Shifit-JIS 上記と同じ ( "~" の全角版)


 更に調べを進めると恐ろしいことにOSによって Unicode でも違う文字がいくつかある。Shifit-JIS では同じなんだが、Windowsへ行くか Unix かで異なってしまう。これ以外にも、最初から別物なのだが見た目が似過ぎて同じに扱われると困る文字もある。例えば、マイナスの全角と記号の横棒。読むぶんには大きな問題は起きにくいが、文字列(文字コード)比較すると別物になる。


 ユニコード体系によって多言語、多数の文字が扱えるようになって痛いのがマイナーな異体文字が多数含まれていること。テレビ番組でやっていたが、サイトウさんの「斉」はその「簡略漢字」と「元となる漢字」以外にも間違って書いて存在してるのが何十個もあるらしく、検索にて同じ文字だとした処理を行わないと別物として扱われてしまう。
 そこが別物は別人であろうが、記号の文字なら意味は一緒であり「」も「」も同じだから別にされると困る。Windows上のビットマップ フォントで前者は綺麗に見えるが後者は雑に見える(書体がメイリオだと全く同じ表示になるが文字コードは異なる)。iPhoneでは知らないけどMacOS X の場合は後者が使われるから異なる文字が存在して困りどころ。

 役所の戸籍のコンピューターだと実際には存在せず名前でのみ存在しいてる漢字が登録されているため大変だ。過去に書いたが、私は役所の人の入力ミスで別の漢字として登録されていた。点がついてたり、付いてなかったりの違いだから役所から手紙が届いても複雑な文字ほど気づけなくなる。自分の名前なんてじっくり見ませんから。そんな感じ(漢字)なら自分のだって思うだけで気にしないでしょ。

このあたりの検出方法を一気に処理できるサブルーチンなんて落ちてないものだろうか。


こんな記事を見つけた
→ INTERNET Watch > UnicodeのWAVE DASH例示字形が、25年ぶりに修正された理由

≪ 続きを隠す
| emisaki | 2020-06-13 Sat 22:03 | 生活::仕事 |