CGI-BBS > SO−HO > ショッピングバスケット > v5.10iで半角カタカナが文字化けする


カレッヂ
カレッヂ


質問者 bsc  投稿日 8/22(金) 04:35:22
iモード用に品名を半角に設定しましたが
かごに渡すと文字化けします
全角はokでした

プロバイダ参照:http://www.anm-1.com/
サーバのOS:UNIXサーバ
パソコンのOS:WinNT系
エディタ:メモ帳
FTPソフト:ffftp
サーバ移転:していない
改造:していない
CGI習熟度:middle

回答者 呑兵衛@大阪  [削除]  投稿日 8/22(金) 19:29:27
ブラウザで見てませんか?種類により文字化けします。
あるいは <meta> タグで charset=*** の指定をしてるとか?
質問者 bsc  [削除]  投稿日 8/22(金) 21:15:16
返答ありがとうございました
携帯からの確認で文字化けです
⇒あるいは <meta> タグで charset=*** の指定をしてるとか?
トップページに記述有りましたので削除しましたが変わりません
化けるのはcgiに渡している半角のみです
回答者 呑兵衛@大阪  [削除]  投稿日 8/23(土) 10:57:46
item.cgo のフォームで商品名を以下のように記述します。
<INPUT TYPE=HIDDEN NAME="GNAME" VALUE="シ ョ ウ ヒ ン1">

foreach $i (0 .. $#BASE) {
というコマンドを探してください。2行あります。その行下に
($TIME,$CODE[$i],$GNAME[$i],$TANKA[$i],$KAZU[$i],$TAXRATE[$i],$REM1[$i],$REM2[$i],$REM3[$i],$REM4[$i],$ENZAN1[$i],$CALS1[$i],$ENZAN2[$i],$CALS2[$i]) = split(/\t/,$BASE[$i],14);
があるので、下記行を加えます。
$GNAME[$i] =~ s/ //g;

以上です。
[解説] 半角カタカナが cgi プログラムの jcode.pl でデコードされたとき、
半角カタカナ一文字は1バイトになるため、半角カタカナ2文字で全角1文字
のように解釈されてしまうことが原因です。
そのため、上のように半角カタカナの間に1バイト文字(上の例では半角空白)
を挿入しておき、HTML表示される段階で削除するコマンドを与えます。
質問者 bsc  [削除]  投稿日 8/23(土) 19:24:49
問題は解決しました
ありがとうございました
感謝致します

返信(回答)する

 


Web裏技