[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 2842] Re: Fullset EUC-JP
Hidemi KAWAI さん、こんにちは。I.Tak. です。
Mon, 31 Dec 2001 06:47:47 -0000 の
[OSASK 2834] Re: Fullset EUC-JP
に返信です。
> 表示文字長とバイト数が比例するエンコード方式は扱いやすかったの
>ですぐに採用したんです。・・・ほら〜、シンプルEUCもシフトJISもこ
>の条件を満たしています。
いや、1バイトのコードを半角で表示するというのは慣例でしかあり
ません(半角や全角は印刷用語で、文字コードとの関係はありません)。
つまり、文字コードはフォントの大きさや幅の情報を持ちません。当たり前
ですよね。カタカナを渡されたらカタカナを表示する、決まりはそれだけです。
面倒ならEUCのJIS X 0201カナを全角で表示したってなんの問題もありません。
これをやるソフトにはnkf(有名)が挙げられます。
ぐいぐい00仕様は慣例に縛られすぎていると思います。
> それとEUCルーチンをシンプルに保ったのは、他のEUCコード(たとえ
>ば韓国語)にもそのまま使えるようにするためです。実際、共通に使え
>ています。もし組み込むとしたら日本語EUC専用のオプションコードを
>決めて、そのコードでこのルーチンを使うことにするでしょう。
フルセットのEUCルーチンでも共通に使えます。遅くなるのは確かですが、
しかしシフトJISと同程度ではありませんか?
今のところG2やG3を使うのは日本語だけなのも、確かにそうです。
しかし、韓国語が全ハングルの完全表示を目指してG3を使うとか、そう
いうことも無いとは言えません。UNICODEの空き領域に全ハングルを再収録
しようという動きもあると聞きます。
> 日本語だけのために、どこまでAPIサポートするべきかというのも僕
>の悩みの一つです。シフトJISとフルセットEUCだけならまあいいかなあ
>・・・。それともフルセットの方は各アプリで対応してもらった方がい
>いかなあ・・・。
EUCの拡張性は日本語だけのものではありませんから、フルセットEUCこそ
API対応しましょう。日本語だけのためはシフトJISそのものです。MS拡張に
も個別対応しているようですし(←使いたい者が作る原理を感じました)。
変換の究極は、ISO-2022 に対応して後はアプリ次第という形になります。
適当なシーケンスを送って設定すればEUC-JPになるしISO-2022-JPになるし、
EUC-KRにEUC-CNに、コンパウンドテキスト(シフトJISは置いてけぼりを
食らいますが)。……誰が書くんだろう?(^^;;;
つまるところ私はISO-2022やEUCが好きでシフトJISは嫌いなわけで、
かなりひいきして発言しています。しかし嘘は言っていません。
よぉ〜く考えてください(^_^;;;
> 例によって、ソースへのコメントです(笑)。
>
>>/*JISX0201のロマカナ間の空きは
>> 認められとる……なんでやねん。 */
> これはどういう意味なんですか?・・・分かりませんでした。
JIS X 0201 をエンコードすると英字とカナの間に空き(制御コード領域C1)
がありますよね。でもオリジナル変換ルーチンではそこの空きは埋めていない
ようでした。JIS X 0213 は隙間が無いように変換するのが面倒なのに……。
ぐいぐい00仕様のフォントはどういう配置になっているのか興味があります。
>>/*本来こういうのは一バイトずつループをまわすべきでは?
>> セグメントの終わりにマルチバイト文字の前半だけ
>> 置かれたら確実に死ぬ。どうせパラメタが間違ってると
>> 死ぬからいいか。 */
> ループの回し方はどうでもいいのですが、不適切な文字コードが渡さ
>れるかもしれないという懸念はいりません。今のpioneer0ライブラリは
1バイトずつ回せば例外無く書けて気持ちいいかなあ、と、それだけで
深い意味はありません(深い考えが無い……レジスタ不足(ToT)。
>「アプリ高速」というモード用に書かれていて、これは「アプリ安全」
>ではないのです。・・・これが何を言っているのかわからない方は、[O
例外を拾ってやる、というレベルではなさそうですから、親切に誤りを
探して返してくれる、正してくれる、ということですね?>アプリ安全
> またソースを見ると188倍するためにLEAやSHLを多用していますが、
>これは最近のプロセッサでは大いに不利なコードであると思います。こ
>れが速いのはせいぜい486くらいまででしょう。PentiumはIMULを10クロ
>ックで実行できます。LEAを連続して使うのはAGIがやたらと発生するの
>で、このような複雑な倍率の掛け算にはお勧めしません。
私のメインマシンは486TOWNSなので、使いたいように作りました。
imulは絶対遅いと信じてきた上、最近のCPUはまともに使ったことがない
ので、そんな風になっています。
> なおPentiumPro以降では、IMULの実行クロックは1クロックです(た
>だしレイテンシーが4クロックありますが)。IMULにすればコードも小
>さくなりますから、僕はこっちのほうがいいと思うのですが・・・。
これは4クロックの間imul用の回路が占有されてしまうということ
なのでしょうか?
imulの方がレジスタが空く上に必ずしも遅くはないと知った以上、
喜んでimulを使います。leaがアドレシング回路を占有する時間も気に
なっていましたし。
------------------------------------------------------------
I.Tak. <msy !Atmark! catvmics.ne.jp>
http://home1.catvmics.ne.jp/~msy/takhome.htm