vine-users ML アーカイブ



[vine-users:055349] Re: gnumeric xml 保存時の日本語 文字化け及び脱落

  • From: 加藤 雅 <mkato@xxxxxxxxxxxxx>
  • Subject: [vine-users:055349] Re: gnumeric xml 保存時の日本語 文字化け及び脱落
  • Date: Sat, 9 Nov 2002 11:07:40 +0900
加藤(大阪)です。

昨夜[vine-users:055337]は尻切れトンボで失礼しました。

Fri, 8 Nov 2002 22:38:13 +0900 付
Masaki SHINOMIYA <shino@xxxxxx> さんのメールより:

> 保存し直すときに
>      <gmr:Item>
>        <gmr:name>author</gmr:name>
>        <gmr:val-string>Masaki Shinomiya</gmr:val-string>
>      </gmr:Item>
> という情報が加えられているらしく、このために字数が狂い
> > xml ファイル上の文字(バイト)数で、1024 の倍数の位置
> という条件から外れたために文字化けが無くなったとも考えられます。

御指摘に従い、市川さんのメールの添付ファイルを sylpheed 上から、
test.gnumeric で保存し、更に gnumeric で開き、B1 セルを 'じ' に書き換えて
test2.gnumeric と言う名前で別名保存し、

Fri, 8 Nov 2002 22:31:03 +0900 付
ichikawa <ichikawa@xxxxxxxxxxxxxxxx> さんのメールより:

> 2.cp test.gnumeric test.gz ; gunzip test.gz

で、市川さん教えて頂いた方法で test2 を作り、cat -n test2 すると、ユーザ名の部分は、

    32	      <gmr:val-string>masashi kato</gmr:val-string>

となっており、シノバーさんの場合とは、文字数で 4 文字違う結果となりました。

シノバーさん wrote;

> というのは市川さんが作った test.gnumericをgunzipで解凍してできる
> XMLファイルには
> <gmr:Cell Col="1" Row="0" ValueType="60">&#164;&#184;</gmr:Cell>
> というデーターが確かにあるのに
> > # B1 が ; と見えていること、これを保存したものを同様手順で覗くと
> <gmr:Cell Col="1" Row="0" ValueType="60">;&#184;</gmr:Cell>
> となり、確かに私の環境でも欠落は起こっていると言えるからです。

市川さんの添付ファイル -> XML ファイル変換で、自分も同様である事を
確認しました。これに起因することで、先程の test.gnumeric を、

$ gnumeric test.gnumeric で開くと、

$ test.gnumeric:94: error: xmlParseCharRef: invalid decimal value
        <gmr:Cell Col="1" Row="0" ValueType="60">&#164
                                                      ^
test.gnumeric:94: error: CharRef: invalid xmlChar value 0
        <gmr:Cell Col="1" Row="0" ValueType="60">&#164
                                                      ^
と言うエラーが出て、確かに自分の環境でも読み込み時に欠落が起こって
いる事を再確認できます。一方、前述 test2.gnumeric の方は、自分の環境で
保存し直しているわけですから、

$ gnumeric test2.gnumeric 

としても、

シノバーさん wrote;

> 情報が加えられているらしく、このために字数が狂い

で、当然読み込み時エラーは起こりません。シノバーさん[vine-users:055309]と
加藤[vine-users:055320]が、「再現しない」と判断したのは、この状態ですね。

で、B1 セルは 'じ' のままで、A1 を書き換え、文字数を調整した結果、
A1 を '時123456789' として test3.gnumeric で保存したものが、再読み込み時、
文字化けしました。
コマンドラインには、test.gnumeric の時と同じエラーメッセージも出ます。
A1 の文字列を変更しても、XML ベースで同じ文字数なら、これは再現しました。

B1 の文字列を英数字にすればエラーは起こらず、日本語文字ならエラーが出る、
と市川さんが言われたことも、同様に再現するのが確認できました。 

従って、自分の環境でも市川さんと同じエラーが、(XMLベースで4096文字目に日本語
文字が来ると、と言う再現条件で)確かに起こるのが確認できた、と言うことに
なりそうです。
同時に、このエラーは市川さんだけの問題ではなく、このヴァージョン−の gnumeric
の不具合だと推測できますが、自分に出来ることは今の所ここまでの様です。

(既にシノバーさんが検証された事を、回り道をして再確認しただけみたいな結果に
なってしまいました)

同ヴァージョン、異なったヴァージョンの方の更なる検証と、不具合がより広く確認
出来た場合のバグフィクスを、心から期待します。

--- 
加藤 雅 <mkato@xxxxxxxxxxxxx>
	http://isweb15.infoseek.co.jp/diary/add10/rox/