JIS X 0213にも「異体字を表す制御文字」を追加することができないだろうか?
確か第1面にも30文字程度の空き区点(バラバラに存在する)があったはずなので、
そこを「異体字を表す区点」にしてしまえば比較的簡単に異体字を表現することができる。
ほとんど使われていないJIS X 0213を捨ててしまって、また別のJIS X 0208上位互換の
文字コード体系を作ればすっきりした体系になるのはわかってはいるのだが、
JIS X 0212でさえ完全には捨て切れない現状を考えると…
まぁ現状よりましになるんじゃない? ていうか今までがひどかったのか。
JISの中の人は、また包摂の解説→議論やらないといけないね…
そしてあの包摂基準では国語審議会側やら何やらを納得させられないので(ry
かなりずれるが
草かんむり、3画に 4画派・大修館書店が「決断」
http://news.goo.ne.jp/news/asahi/shakai/20050131/K2005013101680.html 3画か4画か――漢和辞典で長い間、揺れていた「草かんむり」の画数が、
大修館書店が出した「新・漢語林」で3画に変わった。同書店は世界最大の
漢和辞典、諸橋轍次の「大漢和辞典」(1960年)を発行している老舗(しにせ)。
中国の古い文書を読もうとする専門家が頼りにする「大漢和」では4画だ。
常用漢字や人名用漢字の3画に追随するのは、「大きな決断」だった。
「新・漢語林」部首解説によると、草かんむりは、
国語審議会の表外漢字字体表(00年)やJIS漢字で3画とされ、
明朝体活字は3画で作られている。真ん中が切れた形の4画は
「漢和辞典の見出し字を除いて極めて少ない」という。
「新・漢語林」編集部の円満字二郎さんは「表外漢字字体表がきっかけで、
電子辞書に搭載するにも3画、4画両方では負担が大きい。
諸般の事情を考えて決断したのに残念ながら反響は全くありません」という。
> 残念ながら反響は全くありません
に少々受けてしまった
SJISとUnicodeの半角カナ←→全角カナ変換をする
ツールを作りたいんですが、この辺のノウハウに
ついての詳しい情報ありませんか?
半角全角変換のみで、SJISとUNICODEの変換は
必要ないです。
以前倪永茂氏のAlgorithmCollectionという有名なホームページに
あったな、今は削除されているけど。
wchar_t Hankaku2Zenkaku(wchar_t wc)
{
if(wc == L' ') return L' ';
else if(wc < L'ヲ' || wc > L'゚') return wc;
else if(wc >= L'ア' && wc <= L'オ') return L'ア' + (wc - L'ア') * 2;
else if(wc >= L'カ' && wc <= L'チ') return L'カ' + (wc - L'カ') * 2;
else if(wc >= L'ツ' && wc <= L'ト') return L'ツ' + (wc - L'ツ') * 2;
else if(wc >= L'ナ' && wc <= L'ノ') return L'ナ' + (wc - L'ナ');
else if(wc >= L'ハ' && wc <= L'ホ') return L'ハ' + (wc - L'ハ') * 3;
else if(wc >= L'マ' && wc <= L'モ') return L'マ' + (wc - L'マ');
else if(wc >= L'ヤ' && wc <= L'ヨ') return L'ヤ' + (wc - L'ヤ') * 2;
else if(wc >= L'ラ' && wc <= L'ロ') return L'ラ' + (wc - L'ラ');
else if(wc == L'ワ') return L'ワ';
else if(wc == L'ヲ') return L'ヲ';
else if(wc == L'ン') return L'ン';
else if(wc >= L'ァ' && wc <= L'ォ') return L'ァ' + (wc - L'ァ') * 2;
else if(wc >= L'ャ' && wc <= L'ョ') return L'ャ' + (wc - L'ャ') * 2;
else if(wc == L'ッ') return L'ッ';
else if(wc == L'ー') return L'ー';
else if(wc == L'゙') return L'゛';
else if(wc == L'゚') return L'゜';
return wc;
}
int Zenkaku2Hankaku(wchar_t wc, wchar_t *ans)
{
if(wc == L' '){ *ans = L' '; return 1; }
else if(wc == L'ワ'){ *ans = L'ワ'; return 1; }
else if(wc == L'ヲ'){ *ans = L'ヲ'; return 1; }
else if(wc == L'ン'){ *ans = L'ン'; return 1; }
else if(wc == L'゛'){ *ans = L'゙'; return 1; }
else if(wc == L'゜'){ *ans = L'゚'; return 1; }
else if(wc == L'ー'){ *ans = L'ー'; return 1; }
else if(wc < L'ァ' || wc > L'ロ'){ *ans = wc; return 1; }
else if(wc == L'ッ'){ *ans = L'ッ'; return 1; }
else if(wc >= L'ァ' && wc <= L'オ'){
int x = (wc - L'ァ');
*ans = ((x % 2) ? (L'ア' + (x / 2)) : (L'ァ' + (x / 2)));
return 1;
}else if(wc >= L'カ' && wc <= L'チ'){
int x = (wc - L'カ');
*ans = L'カ' + (x / 2);
if(x % 2){
*(ans+1) = L'゙';
return 2;
}else{
return 1;
}
}else if(wc >= L'ツ' && wc <= L'ト'){
int x = (wc - L'ツ');
*ans = L'ツ' + (x / 2);
if(x % 2){
*(ans+1) = L'゙';
return 2;
}else{
return 1;
}
}else if(wc >= L'ナ' && wc <= L'ノ'){
*ans = L'ナ' + (wc - L'ナ');
return 1;
}else if(wc >= L'ハ' && wc <= L'ホ'){
int x = (wc - L'ハ');
*ans = L'ハ' + (x / 3);
if((x % 3) == 1){
*(ans+1) = L'゙';
return 2;
}else if((x % 3) == 2){
*(ans+1) = L'゚';
return 2;
}else{
return 1;
}
}else if(wc >= L'マ' && wc <= L'モ'){
*ans = L'マ' + (wc - L'マ');
return 1;
}else if(wc >= L'ャ' && wc <= L'ヨ'){
int x = (wc - L'ャ');
*ans = ((x % 2) ? (L'ヤ' + (x / 2)) : (L'ャ' + (x / 2)));
return 1;
}else if(wc >= L'ラ' && wc <= L'ロ'){
*ans = L'ラ' + (wc - L'ラ');
return 1;
}
return 0;
}
965 :
デフォルトの名無しさん:05/02/07 20:54:12
>>957 この新漢語林読んだんだけど、なぜか芸亭(ウンテイ)の芸だけが4画で残っているの。
草冠を3画に統一するんだったら、ゲイとウンを餘と余みたいに同一文字の扱いにするか、
「同一字形だけど別字」にしたほうがよいと思ったんだけどなぁ。
966 :
デフォルトの名無しさん:05/02/15 19:54:00
Jcode-1.99_04 make とおりまんた。
かんきょうは OpenBlock S200 , perl 5.6.1 でし。
よかったね。
[a@obss Jcode-1.99_04]$ make test
make[1]: Entering directory `/home/a/src/Jcode-1.99_04/Unicode'
make[1]: Leaving directory `/home/a/src/Jcode-1.99_04/Unicode'
PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch -Iblib/lib -I/usr/lib/perl5/5.6.1/ppc-linux -I/usr/lib/p
erl5/5.6.1 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t
t/append.....ok
t/convert....ok
t/getcode....ok
t/h2z........ok
t/length.....ok
t/mime.......ok
t/new........ok
t/perl581....skipped
all skipped: Perl 5.8.1 or later required
t/regex......skipped
all skipped: Perl 5.8.1 or later required
t/tr.........ok
All tests successful, 2 tests skipped.
Files=10, Tests=220, 119 wallclock secs (90.21 cusr + 25.26 csys = 115.47 CPU)
make[1]: Entering directory `/home/a/src/Jcode-1.99_04/Unicode'
No tests defined for Jcode::Unicode extension.
make[1]: Leaving directory `/home/a/src/Jcode-1.99_04/Unicode'
[a@obss Jcode-1.99_04]$
967 :
デフォルトの名無しさん:05/02/15 21:19:29
968 :
デフォルトの名無しさん:05/02/19 01:15:40
学校の宿題教えて禁止
ここのスレはみんなが見てますやめましょう
969 :
デフォルトの名無しさん:05/02/19 01:17:02
学校で宿題出されました。どなたか解答お願いできませんでしょうか?
あまり真剣に考えてもらわなくてもいいんですが、
多少間違ってても、判定不可という結論でもいいから
主にSJIS,EUC,UTF-8で書かれた短い文章のコードを判定するのに
上手い方法はありませんかね?
というか、ぶっちゃけ2ch内に張られた
googleとかwikiへのリンクのURLエンコードされた部分を
iconv辺りを使ってSJISに直して表示してリンクしたら面白いかな、と
ちょっと思ってみただけなんで
判定不可ならそのまま%xx%yyで表示すればよいだけなんで。
SJISにしか出てこない値が出てきたらSJIS
EUCにしか出てこない値が・・・(以下略
ASCIIにしか出てこない値が出てきたらASCII
色々切り替えて読めればそれ
EBCDICとかどうよ
なにが?
EBCDIKでどうよ
>>970 SJISのシーケンスを受理するオートマトン、
EUCのシーケンスを受理するオートマトン、
UTF-8のシーケンスを受理するオートマトン、
を用意して、入力バイト列を3つのオートマトンに入れてみる。
入力が終ったときに、受理したままのオートマトンが1つだけなら、
その文字コードで確定。
確定しない場合があるので、そういうときは追加の知識を使うしかない
(google で ie= パラメータがあったら〜、とか)
↓オートマトン
メェェー
SJISのシーケンスを受理するヤギ、
EUCのシーケンスを受理するヤギ、
UTF-8のシーケンスを受理するヤギ、
を用意して、印刷物を3匹のヤギに食わせてみる。
食い終ったときに、「メェェー」って言ったヤギが1匹だけなら、
その文字コードで確定。
二匹啼いたときは、一匹殺せば無問題。
それじゃぁ手始めに979を殺すということで
>>970 |多少間違ってても、判定不可という結論でもいいから
|主にSJIS,EUC,UTF-8で書かれた短い文章のコードを判定するのに
|上手い方法はありませんかね?
たぶん変換コード書いた人なら悟ってると思うけど、
3種類出力させて、判断は人間にまかせるのが簡単確実。
問題はその表示のしかたをどう分かりやすくできるかだが…
確実に判定することは不可能だけど
実用上は980^H^H77の方法でほとんど困らないと思う
利用者としてはリンク開くときに常に3択やらされるたらいやだなぁ
前半は980で、
二匹鳴いたら二匹並べればいいだろ。
やっぱむやみにヤギを殺すのはよくないよね
べつに
というかさ、ヤギじゃなくてヒツジじゃないの?
IE5 以上を入れているならばならば、IMultiLanguage にそんなメソッドがあったような?
SJISのシーケンスを受理するヒツジが一匹、
EUCのシーケンスを受理するヒツジが二匹、
UTF-8のシーケンスを受理するヒツジが三匹、
.
.
zzz
次スレは?
【UTF8】文字コード変換 二匹目【SJIS】
次スレ立てるなら文字コード統一スレとか
Unicodeスレとかがいいんじゃね?
>>994 多分みんな作ったことあるんだろうな(笑) 俺もある。
短い文だと誤判定が多くなるねー。
いわゆる「半角カタカナ」などというものが滅んでしまえば、かなり楽なんだが。
# 正確にはカタカナのJIS X 0201の方
泥臭いけど、日本語としての特徴を使えば認識率はあがるよ。
漢字ばかりになることはないとか、ひらがなは半分以上であるとか、そういうので点数をつける。
EUC-JPとしてみれば10点、Shift-JISなら25点というふうに。
もとの質問の対象がURL中の文字列つーのがきついよね。
>>993 に一票
>>995 gaucheの実装がそんな感じだね。ソースも切り取りやすくてすてき。
立てられませんでした。どなたかお願いします。
999
1000ならunicode死滅
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。