私はウェブサイトにmod_perl2を使用しており、CGI :: Apache2 :: Wrapperを使用してページのリクエストパラメータ(例:ポストデータ)を取得しています。 $ req-> param( "parameter")関数が返す文字列がUTF-8ではないことに気付きました。私が文字列をそのまま使用すると文字化けした結果に終わることがあるので、Encode :: decode_utf8()を使ってデコードする必要があります。 UTF-8文字列に既にデコードされたパラメータを取得するか、パラメータをループして安全にデコードするかのどちらかですか?mod_perl2でUTF-8リクエストパラメータ文字列を取得する
0
A
答えて
1
がパラメータが既に復号化するには、我々はこのようにそのXSの速度の利点を失って、libapreq2から基本となるクラスApache2::Request
の動作をオーバーライドする必要があります。
unless (defined $r and ref($r) and ref($r) eq 'Apache2::RequestRec') {
これは間違ったオブジェクト指向プログラミングは、それは完全に、ちょうどテストクラス名を見送るおそらく
… $r->isa('Apache2::RequestRec')
かを言う必要がありますされています。残念ながら、我々はCGI::Apache2::Wrapper
コンストラクタによって妨害されているようしかし、それは、可能であっても簡単ではありません行動のために(… $r->can('param')
)。
私は、これらの障害では、それは価値がないと言います。私はにパラメータを明示的にデコードする既存のソリューションを保つことをお勧めします。十分にクリアです。
リクエストパラメータをループするには、単にparam
メソッドに引数を渡さないでください。名前のリストが表示されます。これは文書化されています(1、2)、より慎重にお読みください。
関連する問題
- 1. postgres UTF8クライアントエンコーディングで "€"(u + 20AC)文字を取得する方法は?
- 2. 文字列/ UTF8の問題
- 3. Javaの:UTF8文字列
- 4. mb_strtolowerとUTF8文字列
- 5. リクエストパラメータで文字エンコーディングを設定する
- 6. utf8文字列からutf8以外の同等の文字を取得するにはどうすればよいですか?
- 7. 文字列のSHA-256文字列を取得する
- 8. 文字列内の合計サブ文字列を取得する
- 9. Pythonで2文字間の文字列を取得する
- 10. 大文字と小文字を区別しないクエリ文字列リクエストパラメータ
- 11. Lexで文字列 "lngt"で終わる文字列を取得する
- 12. PHPでutf8でエンコードされた文字列を比較する
- 13. 文字列のエンコーディングを取得する
- 14. 文字列のオフセットを取得する
- 15. URLのプレフィックスをリクエストパラメータとして文字列にする
- 16. 文字列から文字列の後に文字列を取得します
- 17. 文字列UTF8エンコードの問題
- 18. iPhone、間違った文字をUTF8からXML文字列
- 19. SWIGはC#でutf8文字列を処理する方法は?
- 20. iphoneでUTF8文字列をデコードする方法
- 21. Rubyで文字列をUTF8に変換する方法
- 22. 文字列でリソースを取得
- 23. json_encode()で空の文字列を取得
- 24. CakePHP:URL文字列でモデルインスタンスを取得
- 25. 文字列操作でセグメンテーションフォールトを取得
- 26. firebugコンソールで文字列値を取得
- 27. 文字列でフィールドの値を取得
- 28. QLPreviewControllerとUTF8文字
- 29. 文字列内の文字数を取得する方法
- 30. 文字列内の文字インデックスを取得する方法
ありがとう、それは私が恐れていたことをかなり確認しました。私の最初の考えは、$ req-> param()を使ってテーブルを取得し、そこでパラメータをループすることでした。私はパラメータのテーブルオブジェクトを取得することができましたが、パラメータを設定しようとするとSTOREが実装されていないというエラーが表示されました。 –