#!/usr/local/bin/ruby
require 'cgi'
require 'kconv'
headers={
"status"=>"OK",
"type"=>"text/html; charset=utf-8"
}
cgi=CGI.new
hoge=cgi['arg']
cgi.out(headers){Kconv.toutf8(hoge)}
上記はcgiはクエリパラメータargに与えた文字列がUTF-8で表示される
物の基本骨格として記しました。
実際に作りたい物は、もう少し複雑で、cgi.outのブロックに渡す部分
は、ケースにより複数あります。
そこで、毎回ブロックに渡す部分をKconv.toutf8でくくるのは、如何な
ものかと思い、CGIクラスそのものを改造して、
cgi.out(headers){hoge}
と記述しても、UTF-8で出力されるようにしたいのですが、やり方が解
りません。
CGIクラスのoutメソッドをオーバーライドするのかなぁ?
と思うのですが、オーバーライドってやった事が無いので、
手がかりがつかめません。
お手ほどきの、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
alias で別名を付けて、中で呼び出します。
class CGI
alias :out_orig :out
def out(hdrs)
out_orig(hdrs) { yield.toutf8 }
end
end
かな。
他のやり方としては、一皮かぶせるほうが理解しやすいか。
def my_out(cgi,hdrs)
cgi.out(hdrs) { yield.toutf8 }
end
my_out(cgi,header) { hoge }
notnotさん ご回答ありがとうございます。
ご回答して頂いたコードはカッコイイですね!!
#notnotさんには、以前にもご回答頂いた事があります。
#その節はお世話になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- その他(ブログ) ランキングサイトのポイントが発生しない理由 1 2023/01/21 11:40
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- Perl perlの構文でカンマの意味が分からない 2 2022/10/30 01:53
- CGI htmlからcgiを自動的に起動させたい 1 2023/02/21 19:39
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- PHP Content-Typeが機能していない? 2 2022/07/17 11:10
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
三項でたとえば交換って
-
教えてください
-
100万件越えCSVから条件を満た...
-
ビーリアルのユーザー名を変え...
-
C言語の入力した文字を反転させ...
-
pythonエラー
-
VBA メモ帳の上書き保存がしたい
-
パイソンエラーについて
-
VBScriptでExcel(2019)上のデー...
-
c言語のプログラミング 2つの整...
-
パソコンのスクリーンセーバー...
-
英数字を含む文字列(0-9,A-Z)...
-
ターミナルからemacsへのコピペ...
-
文字コードのエラー
-
Accessで文字列のバイト数読み込み
-
WinSCPで画像のように puttyを...
-
IDLE.Shell 3.10.0
-
再起動後必ず2つのエラーが出...
-
こういう問題分をよんだとき
-
バーチャルボックスが使えなく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「arg」は何の略?
-
Ruby Selenium 要素の待機
-
VBA/GetTickCountの49.7日の境...
-
pythonのプログラミング
-
Rubyでクラスファイルをディレ...
-
例外の再スロー時に、その原因...
-
get() と find() の違いについて
-
パイソンのクラス
-
No route matches [GET] "/post...
-
A1の値をファイル名に指定した...
-
エクセルVBA オートフィルタで...
-
Rubyについて質問です
-
エラー「メソッドまたはデータ...
-
VBAで型が一致しないエラー(バ...
-
教えてください。vb5.0
-
Csvファイルの最終行を取得する...
-
クラス名やモジュール名の競合...
-
HSTLやSSTL等のI/Oピン
-
10円未満を切り捨てる方法は?
-
What class are you in? には何...
おすすめ情報