強火で進め このページをアンテナに追加 RSSフィード

整理された情報は こちら へどうぞ。

2011年01月08日

[][]Unicodeの中のJIS X 0208に当たる文字を取得

こちらのサイトを参考に作成。

Unicode対応 文字コード

http://ash.jp/code/unitbl21.htm

こちらのサイトで紹介されていた「Unicode変換テーブル」のリンクは変更が有ったみたいでリンク切れでした。

その為、unicode.orgでサイト内検索で「JIS X 0208」で検索したところ以下のURLが該当のファイルの様でした。

http://unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0208.TXT

このファイルは先頭にコメントが記載され、その後に「shift-JISの文字コード」「JIS X 0208文字コード」「Unicode文字コード」「Unicode名」の順にタブ区切りで記載されています。

【コメント部のデータフォーマットの説明部分】

#		 Column #1 is the shift-JIS code (in hex)
#		 Column #2 is the JIS X 0208 code (in hex as 0xXXXX)
#		 Column #3 is the Unicode (in hex as 0xXXXX)
#		 Column #4 the Unicode name (follows a comment sign, '#')

【データ部の先頭】

0x8140	0x2121	0x3000	# IDEOGRAPHIC SPACE
0x8141	0x2122	0x3001	# IDEOGRAPHIC COMMA
0x8142	0x2123	0x3002	# IDEOGRAPHIC FULL STOP
0x8143	0x2124	0xFF0C	# FULLWIDTH COMMA
0x8144	0x2125	0xFF0E	# FULLWIDTH FULL STOP
0x8145	0x2126	0x30FB	# KATAKANA MIDDLE DOT

このファイルに記載されているものが以下の様な文字、計6879文字となっています。

* 第1水準漢字 ‐ 2,965文字
* 第2水準漢字 ‐ 3,390文字
* 非漢字 ‐ 524字
      o ひらがな
      o カタカナ
      o 記号
      o ギリシャ文字
      o キリル文字
      o 罫線素片

JIS X 0208通信用語の基礎知識

http://www.wdic.org/w/WDIC/JIS%20X%200208

JIS X 0208に当たる文字を取得する Python のプログラムはこちら。

#! /usr/bin/env python
# coding: utf-8
# coding=utf-8
# -*- coding: utf-8 -*-
# vim: fileencoding=utf-8

import codecs

ch_list = []
f = open('JIS0208.TXT', 'r')
for row in f:
    if row[0] != '#':
        c = row.split("\t")[2]
        ch_list.append(unichr(int(c, 16)))
f.close()

f = codecs.open('unicode.txt', 'w', 'utf-8')
txt = "".join(ch_list)
#txt = "\n".join(ch_list)
f.write(txt)
f.close()

以下の様に連結しているので最終的な出力ファイルには文字が隙間なく並んでいますが

txt = "".join(ch_list)

f:id:nakamura001:20110108113741p:image

以下の様に記述すると1行に1文字出力されます。

txt = "\n".join(ch_list)

f:id:nakamura001:20110108113755p:image

関連情報

JIS X 0208 - Wikipedia

http://ja.wikipedia.org/wiki/JIS_X_0208

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

トラックバック - http://d.hatena.ne.jp/nakamura001/20110108/1294453032
リンク元