Top > Projects > Mul_light > ヒデ > SJISフォント

プロジェクトデータ - Daemon - ヒデ - SJISフォント Edit

目次 Edit

文字コード変換 Edit

区点2JIS Edit

u2_CharCode += 0x2020;		//区点コードからJISコードに変換

JIS2SJIS Edit

u2		JIS2SJIS( u2 u2_CharCode )
{
	u1		u1_CharCodeH;
	u1		u1_CharCodeL;

	u1_CharCodeH = u2_CharCode >> 8;
	u1_CharCodeL = (u1)u2_CharCode;

	u1_CharCodeL = u1_CharCodeL + 0x1f + ( ( u1_CharCodeH + 1 ) & 1 ) * 0x5e;		//奇数なら0x1f,偶数なら0x1f + 0x5e
	u1_CharCodeH = ( ( u1_CharCodeH + 1 ) >> 1 ) + 0x70;

	if( u1_CharCodeH >= 0xa0 )	//真中で分断されているため。
		u1_CharCodeH = u1_CharCodeH + 0x40;
	if( u1_CharCodeL >= 0x7f )	//なぜか7fの列だけ空いているから。
		u1_CharCodeL = u1_CharCodeL + 1;

	u2_CharCode = ( u1_CharCodeH << 8 ) + u1_CharCodeL;

	return u2_CharCode;
}

SJIS2SJIS詰めコード Edit

u2		SJIS2ChinkSJIS( u2 u2_CharCode )
{
	u1		u1_CharCodeH;
	u1		u1_CharCodeL;

	u1_CharCodeH = u2_CharCode >> 8;
	u1_CharCodeL = (u1)u2_CharCode;

	//2バイト文字
	if( u1_CharCodeH )
	{
		u1_CharCodeH &= 0x3f;
		u1_CharCodeL -= 0x40;
	}

	//1バイト文字
	else
	{
		u1_CharCodeL -= ( u1_CharCodeL & 0x80 ) * 0x20;		//u1_CharCodeLが、0x80以上なら0x20引く。
	}

	u2_CharCode = ( u1_CharCodeH << 8 ) + u1_CharCodeL;

	return u2_CharCode;
}

文字コード Edit

本来のSJISコードの隙間を詰めて、配列にしたものです。
0x01,0x00~0x1f,0xbfは、0x8140~0x9fffが本来の文字コードです。
0x20,0x00~0x2f,0xbfは、0xe040~0xefffが本来の文字コードです。
上位1バイト(81~9f,e0~ef)を0x3fでANDすると0x01~0x1f,0x20~0x2fになります。下位1バイトは0x40を引きます。
1バイト文字の後半(0x00,0xa0以降)は、0x20引いて詰めています。

0123456789abcdef101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf
0NULSOHSTXETXEOTENQACKBELBSHTLFVTFFCRSOSIDLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUSSP!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}~DELソ
1 ´¨_±×÷°§
20123456789
3ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψω
4АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя
5
6
7
8
9沿
a橿竿
b
c
d稿
e使姿鹿湿寿
f宿駿
10西穿
11退
12辿調椿
13殿禿廿
14尿
15便簿
16貿麿婿綿
17輿耀
18丿
19
1a
1b广
1c彿忿
1d
1e榿槿
1f歿滿漿
20
21
22祿窿
23紿繿
24
25
26覿谿跿
27
28
29鴿
2a
2b
2c
2d俿氿溿
2e譿
2f

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Mon, 06 Jul 2009 19:18:43 JST (3367d)