JIS X 0208とUnicodeの変換

JIS X 0208とUnicodeの変換


EUC関係の仕様変更をしています。
JIS X 0208とUnicodeの変換表を更新対象として検討しているため、シフトJIS等にも影響を及ぼすでしょう。


EUCで、よく使うだろうものは、次のように用意することにしました。

・EUC-JP
・eucJP-ms
・eucJP-ascii
・eucJP-0201

eucJP-msはWindows内蔵の変換表と同じくすれば良いだけなので、何も難しくはない。
問題なのは、純粋なEUC-JPを、どう実装するべきか、という点だと思う。


Unicode が登場して、かれこれ20年近い時が流れました。
これまで、様々な文字コードマニアがこの大問題に挑みましたが、ことごとく散ってしまった。
まぁ、結論なんて無いんでしょうね。


マッピング案


現在使用している変換表は10年も前に作ったものですが、今改めて見直してみると、最良とは言い難い仕様になっています。
そこで、仕様変更を考えています。

取り敢えず案を書いておきます。
細かい意見は、後に書きます。
ご意見等をお待ちしております。


基本コンセプト
・JIS X 0208とUnicodeの文字名を考慮する
・但し、他の処理系に影響を与えるような、明らかに妥当ではない変換はしない
・0208→Unicodeは多対1、Unicode→0208も場合によっては多対1


暫定案

01-17  ̄ オーバーライン  U+203E OVERLINE
01-29 ― ダッシュ     U+2015 HORIZONTAL BAR
01-32 \ バックスラッシュ U+FF3C FULLWIDTH REVERSE SOLIDUS
01-33 ~ 波線       U+301C WAVE DASH
01-34 ∥ 双柱、平行    U+2225 PARALLEL TO
01-61 - マイナス     U+2212 MINUS SIGN
01-79 ¥ 円        U+00A5 YEN SIGN
01-80 $ ドル       U+FF04 FULLWIDTH DOLLAR SIGN
01-81 ¢ セント      U+00A2 CENT SIGN
01-82 £ ポンド      U+00A3 POUND SIGN
02-44 ¬ 否定       U+00AC NOT SIGN


上記案についての説明



01-17  ̄ オーバーライン
 WindowsだとU+FFE3 FULLWIDTH MACRON。
 しかし、オーバーラインなんだからオーバーラインで良いのではないかと思う。
 変換条件
  01-17 → U+203E
  U+203E → 01-17
  U+FFE3 → 01-17

01-29 ― ダッシュ
 候補はU+2015 HORIZONTAL BARか、U+2014 EM DASHのいずれか。
 どちらが良いのか判断付かないが、少なくとも日本語環境でEM DASHなんて表現は聞かないので、水平線だろうか。
 変換条件
  01-29 → U+2015
  U+2015 → 01-29
  U+2014 → 01-29

01-32 \ バックスラッシュ
 候補はU+005C REVERSE SOLIDUSか、U+FF3C FULLWIDTH REVERSE SOLIDUSのいずれか。
 しかし、常識的に考えてこれをU+005Cなんかにしてはいかんだろう。
 printf("hoge\n");なんて表記が許されてしまうことになる。大変なことになる。
 変換条件
  01-32 → U+FF3C
  U+FF3C → 01-32

01-33 ~ 波線
 Windowsは、なぜかU+FF5Eになる。U+301C WAVE DASHの~の上下の違いを嫌ったためか。
 しかし波線ならU+301Cにするのが筋であり、本来あるべきとは思う。
 変換条件
  01-33 → U+301C
  U+301C → 01-33
  U+FF5E → 01-33

01-34 ∥ 双柱、平行
 この記号は、一体何に使うものなのか良く分からない。
 JIS X 0208ではまっすぐ2本だったのに、JIS X 0213で微妙に傾斜が付いて、アスキーアートが大変なことになっているようだ。
 候補としては、U+2225 PARALLEL TO か、U+2016 DOUBLE VERTICAL LINE らしい。
 一応、平行を表わす数学的な記号なのだろう、と判断し、U+2225としてみた。
 変換条件
  01-34 → U+2225
  U+2225 → 01-34
  U+2016 → 01-34

01-61 - マイナス
 この記号も、ASCIIのU+002Dと同様、ハイフンなんだかマイナスなんだか、実際の所は分からない。
 なのでWindowsはU+FF0D FULLWIDTH HYPHEN-MINUS らしい。
 ただ、JIS X 0208はハイフンが別(01-30)にあるから、これはマイナスでいいかな。
 変換条件
  01-61 → U+2212
  U+2212 → 01-61
  U+FF0D → 01-61


01-79 ¥ 円
 Unicodeには、U+00A5 YEN SIGN と U+FFE5 FULLWIDTH YEN SIGNがある。
 全角が用意されている理由は良く分からない。
 素直に、U+00A5で良いのでは無かろうか。問題が生じるとは考えにくい。
 変換条件
  01-79 → U+00A5
  U+00A5 → 01-79
  U+FFE5 → 01-79


01-80 $ ドル
 候補はU+0024 DOLLAR SIGNか、U+FF04 FULLWIDTH DOLLAR SIGNのいずれか。
 しかし、常識的に考えてこれをU+0024なんかにできるわけがない。
 ASCIIの文字なのだから一方通行にもなってしまう。
 素直に全角で諦める方が得策。
 変換条件
  01-80 → U+FF04
  U+FF04 → 01-80


01-81 ¢ セント
 この記号はASCIIにもJIS X 0201にも無いのだから、全角の区別など不要と思うが、Unicodeでは区別されている。
  U+00A2 CENT SIGNと、U+FFE0 FULLWIDTH CENT SIGNがある。
  IBMのCP942/CP943で1バイトの¢記号を用意し、区別が必要になったことが事の由来らしい。
  仮にそうだったとしても、やっぱり全角の区別は重要ではないな。
 変換条件
  01-81 → U+00A2
  U+00A2 → 01-81
  U+FFE0 → 01-81


01-82 £ ポンド・スターリング
 この記号も、上と同様の理由で全角が用意されているらしい。
 U+00A3 POUND SIGNと、U+FFE1 FULLWIDTH POUND SIGNがある。
 変換条件
  01-82 → U+00A3
  U+00A3 → 01-82
  U+FFE1 → 01-82


02-44 ¬ 否定
 この記号も、上と同様の理由で全角が用意されているらしい。
 U+00AC NOT SIGNと、U+FFE2 FULLWIDTH NOT SIGNがある。
 変換条件
  02-44 → U+00AC
  U+00AC → 02-44
  U+FFE2 → 02-44
 ちなみにこの文字はIBM拡張文字やNEC選定IBM拡張文字にもある。この変換表も、U+00ACに行くように見直すことにする。

2009/01/08(木)19:18 |Comments(0) |Trackback(0)

製造開発 | プログラミング | コンピュータ | [編集]

▲ページトップ

コメント

コメントの投稿

eucJP-openについて ホーム Unicode 1.0とUnicode 1.1の仕様について
トラックバック

この記事にトラックバックする(FC2ブログユーザー)
▲ページトップ

カレンダー

09 | 2017/10 | 11
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 31 - - - -

プロフィール

miraicorp

Author:miraicorp
未来情報産業(株) 社長

主として「ICカードこれひとつ」や「文字、文字コード」処理、時々C++などについて記述しています。

twitterツイッター

管理用

検索フォーム

お知らせ

コメント等お気軽にどうぞ。

気に入ったら拍手して頂けると、今後の記事を書く際の参考や励みになります。

■お仕事を募集しております
ソフトウェア製造の仕事や、原稿執筆の仕事などを随時受け付けております。
お気軽にご相談下さい

■初めての方へ
こまごまと更新しているため、他にも関連する記事があるかもしれません。
「月別アーカイブ」「検索フォーム」「カテゴリ」などをお試し下さい。
トップページはこちら

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

広告枠

メール

メールはこちら

リンク

このブログをリンクに追加する

RSSリンクの表示

QRコード

QR