過去ログ NO.1071029220
□ さと [2003年11月24日17時20分]電光!上において表示で使えない文字(表示させようとすると化ける)についての質問です。半角カナは原則NGですよね、その他の文字はいかがでしょう? 試した結果「\」「=」「"」(全て半角)などがひっかかっているような気がします。
☆ 管理者投稿のみで使おうとしており、投稿ウィンドウを使わず、直接data.cgiをアップし一括でdataの書き換えをしようとして引っかかりました。上の試した結果というのも、投稿ウインドウを使用した場合と直接data.cgiをアップした時の差をチェックしています。
プログラマー的には常識?しかも電光!の使い方が自分勝手なこともあり当ラウンジで質問していい内容なのか?とも思いましたが、甘えて質問させていただきました。 ご容赦下さい、よろしくお願いいたします。
□ NXer [2003年11月29日23時42分]いわゆる文字化け現象ですね。遅れたレスポンスになりました。NXerです。
>半角カナは原則NGですよね、その他の文字はいかがでしょう? >試した結果「\」「=」「"」(全て半角)などがひっかかっているような
さとさんの↑の書込みを読み、次のperlスクリプトで半角カタカナや 記号の動作を試してみました。
#print kana & symbols print "アイウエオ"; print "\n"; print "!\"#\$\%&'()=~\^"; print "\n";
実行結果---------------------- アイウエオ !"$%&'()=~^ ----------------------------- "!\"#\$\%&'()=~\^" という二重引用記号の間の記号を分解してみます。 1)このグループはそのまま表示ができました。 !#&'()=~^ 2)このグループは\エスケープ記号をつけることで メタ文字ではなく、記号として表示ができました。 "$% ↓ \"\$\% 3)しかし、~\^の場合、perlではエスケープ記号\は無視されて 表示されていません。
私の設置する電光!は、文字コードをシフトJISではなくEUCに していますが、上のperlで使われるメタ文字の動作と一致しました。 電光!では、次のような全角半角文字テストをしてみました。
○電光!表示 !"#$%&'()=~^-アイウエオabcdefg全角半角文字テストです。 11/26’20:05 ○一覧での表示 !\"#$%&'()=~\^-アイウエオabcdefg全角半角文字テストです。
これが、もともとの記号部分の入力です。 !"#$%&'()=~\^- 面白い結果になりました。 半角カタカナ英文字が、入力可です。理由は、当方の電光!が文字 コード選択をシフトJISではなくて、EUCにしているからでし ょうか。以下は、記号について。
□ \メタ記号の非表示・・・perlの特性 !"#$%&'()=~\^- 入力記号列 結果 !"#$%&'()=~^- 電光!表示 \記号は削除されました。
\記号は、perlでは\と英字(メタ文字)で、\n,\r,\tのように メタシンボルを構成します。そのため、\記号は、CGIでは無視されます。 このことから、入力したのに、電光!には、反映されませんでした。
□ \の挿入 しかし、一覧や保存データには逆に!\"とエスケープ記号が挿入 されています。 !\"#$%&'()=~\^- 一覧での表示と保存データ記号列
これは次の置換用s///演算子を使った結果でしょうか。 つまり文字列中に引用記号"がある場合は、\"に置き換えます。 248 $value =~ s/\"/\\"/g;
>試した結果「\」「=」「"」 と私の結果から、「\」「"」とはperlという言語に原因があるのか もしれません。 >ひっかかっているような、、、、 具体的なデータが分らないので、断定できませんが、シフトJISベース とEUCベースでは、微妙な差が出るのかもしれません。 日本語のコードは、英数字とは異なり、まだまだ、変化するのでしょうか。
□ さと [2003年12月10日13時07分]NXer様 レスありがとうございました。 Pealの置換及びメタシンボルについて知識がなかった事が原因だったのですね。 データtxtファイルの直接書き&アップをする場合、¥は全角を使う、ダブルクォーテーションに関しては入力の段階で「\"」を使用するなどの対応をして問題はクリアしました。「=」は半角「\」の直前に置いていたため「\」無視の影響を受けていたようです。 普通の手順で書き込んだ場合は見えないところで置換されていたわけですね。置換に関してこれまで意識したことは無かったのですが、これを機に調べてみようと思います。 詳細なレスをいただき大変参考になりました、ありがとうございました。
一定時間書込が無かったので過去ログに移りました
|
|