アプリ版:「スタンプのみでお礼する」機能のリリースについて

http://cgikon.com/search/detail.php3?menu=1&cgi_ …

上記の簡単なスクリプトを使いたいと思っています。
文字コードがEUCとなっており、そのままの状態で設置すれば動作します。

EUCではなく、SHIFT-JISにして動作させたいのですが、中に書かれている「EUC - JP」を「SHIFT - JIS」に書き換えて、またファイルの文字コードも「SHIFT-JIS」として保存しました。
またCSVデータも「SHIFT-JIS」に変換して保存。

変換したファイルをアップしてみましたが、表示される表の数値の箇所が真っ白になってしまいます。
一番上の行と一番左の列は表示されます。
足し算される数値の部分だけが表示されません。

どのようにすれば、EUCからシフトJISに変換して、動作させる事ができるのでしょうか。


アドバイスをお願い致します。

A 回答 (5件)

> なぜシフトJISにすると、全角スペースがあるとダメだったのか分かりませんが、とりあえず解決して良かったです。



ShiftJISの場合、全角空白は 0x81 0x40 という並びです。

>echo " "|hexdump
00000000: 22 81 40 22 0A ".@".

見事に '@' が隠れているのでこれが誤動作の引き金になりえます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

なるほど。
詳しい仕組みは完全には理解できないのですが、EUC-JP形式の全角スペースがシフトJISにすると、変換上で別の文字が隠れているような形になってしまい、うまく数字の部分が表示されなかったようですね。

EUC-JPからシフトJISに変換してから使用する機会は少ないと思いますが、今回の事で全角スペースには注意するしなければならない事が分かりました。

的確な解説をありがとうございました。

お礼日時:2007/11/01 13:23

*>魔王も?ですね。

 失礼しました、でも解決できてよかったですね。

分かっている方は居られるようですが、お尋ねしてみてはどうでしょう。
◇2003年04月15日
ひさしぶりにWebCore改造
{http://ch00143.kitaguni.tv/}
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

参照先のURLを拝見させて頂きました。
まだ私には理解できなかったです(^^;

ありがとうございました。

お礼日時:2007/11/01 13:25

*失礼しました、解決策はあるようです。



◇QNo.967641 HTML・PHPの文字化け
{http://okwave.jp/qa967641.html}

*> eucにするとちゃんと表示されるのですが
ということですので、おそらくサーバからは正しく EUC で... ANo.3,

◇WEBプログラミング NOW!:

*Yahoo! Japanのディレクトリーに掲載されました
{http://shimax.cocolog-nifty.com/search/2006/11/i …}

以上のページを参照ください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

原因が分かり解決しました(^^)
No1さんの所で解決方法を記載しておきましたので、よろしければご覧になって下さい。

原因は「全角スペース」でした。
でも、EUC-JPでは問題なかったのに、シフトJISだと全角スペースがあるとダメだったのか分からずです。

理由が分かる場合は、教えて頂けると助かります。

お礼日時:2007/10/31 14:07

アップデートした、サーバーで使えるエンコードが[UTF-8][EUC - JP]などに限定されていませんか?



◇サーバー業者に確認をされるのをお勧めします。

*ウェブページによって、エンコードは変わります。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

>アップデートした、サーバーで使えるエンコードが[UTF-8][EUC - JP]などに限定されていませんか?
こんなサーバーって今どきあるのでしょうか?
利用しているサーバは、どの文字コードでも使えるようです。

あと原因が判明して、解決する事ができました。
解決方法についてはNo1さんの所に記載しておきました。

なぜ全角スペースが悪かったのか理由が分からないので、もし分かる様でしたら理由を教えて頂けると助かります。

お礼日時:2007/10/31 14:03

何故shift_jisにするのかが分りませんが、jcode.pl かjcode.pmによる変換の箇所(convert)のところを、eucからsjisにしてみてはどうでしょうか。

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

自己解決する事ができました。

原因は、数値を出力する箇所の「$_」の前に、全角スペースが入っていたためでした。
試しにこの全角スペースを削除したら、無事に数値が表示され表計算されました。

なぜシフトJISにすると、全角スペースがあるとダメだったのか分かりませんが、とりあえず解決して良かったです。

あと、シフトJISにする理由ですが、シフトJISで記述されている別のCGIにこの表計算CGIを組み込むからです。
Perlには詳しくないので、結構悪戦苦闘してしまいました(笑)

お礼日時:2007/10/31 14:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!