HTMLフォームから検索語を引き出すCGIスクリプトはCGI::Ajax
です。私のスクリプトで結果の文字列にEncode::Detect::Detector
を実行すると、UTF-8の代わりに、フォームに入力された文字に応じて様々なエンコーディングが得られます。ギリシャ文字はUTF-8
、ウムラウトはwindows-1252
、出力は全くありませんASCII文字。私は、問題がPerlに渡す文字列に何かCGI::Ajax
があると確信しています。そのコードのどこかにdecodeURI()
を使用していますが、私はURI::Escape
とEncode
をすべての可能な順列で試しましたが、異なる文字列を単一のエンコーディングに正規化しようとする試みは成功しませんでした。そのままでは、非ASCII文字(ウムラウトまたはギリシア語)の1つまたは他のセットは常に文字化けします。 AjaxにUnicodeのままにする方法を教えてください。UTF-8とCGI :: Ajax
0
A
答えて
1
解決済み:CGI::Ajax
明らかに、Unicodeを正しく処理しないJavaScriptのescape
関数を使用しています。この関数はencodeURI
とencodeURIComponent
に置き換えられました。CGI::Ajax
オブジェクト$pjx
のデフォルトのエスケープ関数として、$pjx->js_encode_function('encodeURIComponent');
のように設定することができます。 Phew。
0
上記の答えは、しかしから、私は私の呼び出しを変更したときに、私のために動作しませんでした:
print $pjx->build_html($cgi, \&Show_HTML);
UTF-8
print $pjx->build_html($cgi, \&Show_HTML, {-charset=>'UTF-8'});
に文字が正しく表示され始めました。
出典:http://search.cpan.org/~bpederse/CGI-Ajax-0.707/lib/CGI/Ajax.pm
関連する問題
- 1. JQuery AJAX + C CGI
- 2. python-cgiからAJAXにデータを送信
- 3. CGI :: ApplicationとSQLite
- 4. UTF8とJavascript
- 5. utf8とPHPエラー
- 6. RandomAccesFileとUTF8行
- 7. SQLiteとUTF8
- 8. SetThreadLocaleとUTF8
- 9. RapidxmlとUTF8
- 10. CodeIgniterとutf8関数
- 11. 正準タグとUTF8
- 12. QLPreviewControllerとUTF8文字
- 13. PHP UTF8エンコードとデコード
- 14. CGI
- 15. クロスサイトへのajaxコールでステータスコード0を取得Perl CGI関数
- 16. CGI Ajaxリクエストでアプリケーションのオブジェクトを取得できますか?
- 17. windows-1255からUTF8へのajax応答の変換
- 18. perl cgi、awstatsツールと変更
- 19. HTTPサーバーとCGI処理
- 20. thttpdとCGIモードのPHP
- 21. 接続PerlのCGIとXAMPP
- 22. nginx uwsgiとcgi pythonスクリプト
- 23. フレンドリーなURLとUTF8文字
- 24. UTF8とDoctrine全文検索
- 25. mb_strtolowerとUTF8文字列
- 26. CGIオープンデータベース
- 27. (CGI、PHP)
- 28. UTF8ビン
- 29. UTF8エンコード/€
- 30. Python:UnicodeDecodeError: 'utf8'