名 前 
電話番号 

【応募フォームの結果を漢字変換して表示】 

【ソース】 code.cgi 【解説】
  1. #!/usr/local/bin/perl
  2. #漢字コード変換用スクリプトを呼び出す
  3. require "jcode.pl";
  4. #送られてくる文字列の長さ
  5. $length=$ENV{'CONTENT_LENGTH'};
  6. #長さ分だけ標準入力から読み込む
  7. read(STDIN, $buffer, $length);
  8. #文字列ごとに分割する
  9. ($shimei,$denwa)=split( /&/ , $buffer);
  10. #フォーム名と内容に分割する
  11. ($name,$value1)= split( /=/ , $shimei);
  12. ($tel,$value2)=split( /=/ , $denwa);
  13. #フォームから送られたデータにスペースがあると、
  14. #プラス(+)に置き換えられるので、
  15. #スペースにしたままにする変換処理をする
  16. $value1=~ tr/+/ /;
  17. $value2=~ tr/+/ /;
  18. #フォームから送られたデータの特殊文字や日本語などは
  19. # % に続く2桁の16進数に置き換えられるので、
  20. #それを変換しなおす処理をする
  21. $value1=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
  22. $value2=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
  23. #フォームの内容をコード変換する
  24. # SJIS
  25. $sjis1=$value1;
  26. $sjis2=$value2;
  27. &jcode'convert(*sjis1,"sjis");
  28. &jcode'convert(*sjis2,"sjis");
  29. # EUC
  30. $eu1=$value1;
  31. $eu2=$value2;
  32. &jcode'convert(*eu1,"euc");
  33. &jcode'convert(*eu2,"euc");
  34. #JIS
  35. $js1=$value1;
  36. $js2=$value2;
  37. &jcode'convert(*js1,"jis");
  38. &jcode'convert(*js2,"jis");
  39. print "Content-type: text/html \n\n";
  40. print <<EOF;
  41. <HTML><HEAD><TITLE>CGI-TEST</TITLE></HEAD>
  42. <BODY>
  43. SJIS 名前 =$sjis1 :電話番号 =$sjis2 <BR>
  44. <BR>
  45. EUC 名前 =$eu1 :電話番号 =$eu2 <BR>
  46. <BR>
  47. JIS 名前 =$js1 :電話番号 =$js2 <BR>
  48. </BODY>
  49. </HTML>
  50. EOF
  51. exit;
form1.cgi をベースに追加・変更した行だけを青字で表示



5.「jcode.pl」は、ネット上で公開されている
 漢字コード変換のためのフリー・ソフトウェア。
 持ってきてそのままサーバーに突っ込む。
 フリーのCGIをもらってくると一緒に付いてたりする。






























39.それぞれの値を、変換する