[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:14015] Re: Gnumericでのセル入力フォント指定
-
From:Shun-ichi TAHARA (田原 俊一)
-
Date:Sat, 18 May 2002 23:13:43 +0900 (JST)
- Subject: [plamo:14015] Re: Gnumericでのセル入力フォント指定
- From: Shun-ichi TAHARA (田原 俊一) <jado@xxxxxxxxxxxxxxx>
- Date: Sat, 18 May 2002 23:12:43 +0900 (JST)
ずいぶん昔の話のような気がしますが、まだ10日前の話題だったか…
From: Shun-ichi TAHARA (田原 俊一) <jado@flowernet.gr.jp>
Message-Id: <20020507.010324.846949595.jado@flowernet.gr.jp>
> > # Excelは、もう不要です
>
> と思ったんですが、『〜』等の特定の文字を含むExcelシートをgnumericで読
> むと化けてしまいます。実に惜しい。
>
> iconv のバグなのか、Excel が変なコードを吐いているのかはわかりませんが、
> 手が空いたら追いかけてみようかなぁ…
この件追いかけてみました。Plamo とはあまり関係ないですが、まぁプラット
フォーム横断な国際化(というか、Microsoft とのおつきあい)の面倒な一面で
も垣間見えたらと思いまして、こっちに投げちゃいます。
1. Excel(多分97以降) は、.xls 保存時に、セルの中身をUTF-8に変換するが、
このとき『〜』は、なぜか『全角チルダ』文字に相当するUNICODEに変換さ
れる。ちなみに、GLibc が持っているマップ的には、
文字 JIS GB2312 UCS2 UTF8
『〜(波線)』 0x2141(x0208) 0x301C 0xE3809E
『全角チルダ』 0x2237(x0212) 0x212B 0xFF5E 0xEFBD9E
のようになっている。つまり、Excel で入力した『〜』は、0xE3809E とい
う UTF8 のコードで格納されるべきなのに、なぜか 0xEFBD9E という別の
コードで格納されていることになる。
2. Excel のファイルをUNIX側で解釈して、GNU iconv 等でデコードすると、
簡体字中国語(GB2312)か、補助漢字(JISx0212) でデコードされる。まわり
が日本語文字だと、補助漢字になることもあるけど、基本的に GB が優先
みたい。もちろん GB に変換不能の時は JIS になる。
なお、他の機種依存文字(マル付き数字など)は、GB で多数定義されている
ので、このへんが入っていても GB でデコードしようとする。
3. Gnumeric では、今のところ LANG=ja のときの内部コードが EUC-JP なの
で、これに変換される。結果、『〜』は補助漢字のチルダとしてデコード
される。
この文字、ロケールマップを見る限りは「全角チルダ」だけど、MSゴシッ
クとかに定義されているグリフは、どう見ても半角サイズ(もちろん幅的に
は全角なんだけど)。仮にこれが表示できても、変なんだろうなぁ…
ちなみに、マル数字などの機種依存文字は、EUC-JP にマップ不能であるた
め、iconv がエラーを返す結果、『?』に変換される。
4. ここは未確認なんだけど、Gnumeric のセル表示時に、どうもSJISで扱って
る(Gnumeric が .xls を吐くときにSJISを使うせいだと思う)みたいで、表
示するときに化けちゃう(上の編集領域(GtkEntry)では大丈夫なんだけど)。
どっちにしても、.xls で書き出したときに、Excel95形式にされて、全部
SJISにされてしまうので、ここで完全に破綻。
註) SJISには JISx0201, JISx0208, JISx0213(3,4水準)しかマップできない
5. xlHtml+w3m+Mew で、Excelの添付ファイルを開くときには、xlHtmlとw3mは、
utf-8のまま扱って、Emacs(Mule-UCS)が直接 UNICODE をハンドリングして
表示するが、Mule-UCS は問題の文字を GB のチルダを使って表示しようと
する。こっちのほうのグリフは、まさに日本語の『〜』と同じに見えるの
で、違和感なく表示できてる。
背景として、
・Windowsの持っているUNICODEマップが変?
・GNUのマップはどうなんだろう(GBのチルダは、どちらかというと波線だと思
うんだが…)
という食い違いがありますね。誰か unicode.org が出しているマップを見た
ことのある方はいらっしゃいませんか? (私もうこれ以上根性が続かない…)
とりあえず、やっつけでパッチを当てて、無理矢理『〜』に引き戻すようにし
た(一応 zh_CN 環境下ではチルダのままにするようにしてる)のですが、こん
な行き当たりばったりの修正は、さすがにフィードバックする気にはなりませ
ん。
まあ、おそらく、
・Gnumeric が Excel97形式(UTF-8)で書き出せるようにする
・GTK+-2.x + Pango に移行して、内部的に UNICODE のままハンドリングする
という(当然向かうべき)方向で、この問題は自然に解消するのでしょう。
# というわけで、Plamo用の新GNOMEパッケージでは、『〜』でも化けない
# Gnumericが収録される予定(いいから早く作れ > 自分)。
_______________________________
田原 俊一 jado@flowernet.gr.jp, shunichi_tahara@zenrin.co.jp
http://flowernet.gr.jp/jado/
FingerPrint: 16 9E 70 3B 05 86 5D 08 B8 4C 47 3A E7 E9 8E D9
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
- Follow-Ups
-
- [plamo:14016] Re: Gnumeric でのセル入力フォント指定, Yoshinori Ariie
- References
-
- [plamo:13840] Re: Gnumericでのセル入力フォント指定, Shun-ichi TAHARA (田原 俊一)
- [plamo:13841] Re: Gnumeric でのセル入力フォント指定, Yoshinori Ariie
- [plamo:13842] Re: Gnumericでのセル入力フォント指定, Shun-ichi TAHARA (田原 俊一)
[検索ページ]
[メール一覧]
Plamo ML 公開システム