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. python-cgiからAJAXにデータを送信
- 2. SQLiteとUTF8
- 3. utf8とPHPエラー
- 4. RapidxmlとUTF8
- 5. SetThreadLocaleとUTF8
- 6. UTF8とJavascript
- 7. CGI :: ApplicationとSQLite
- 8. CodeIgniterとutf8関数
- 9. 正準タグとUTF8
- 10. QLPreviewControllerとUTF8文字
- 11. windows-1255からUTF8へのajax応答の変換
- 12. mb_strtolowerとUTF8文字列
- 13. UTF8とDoctrine全文検索
- 14. nginx uwsgiとcgi pythonスクリプト
- 15. perl cgi、awstatsツールと変更
- 16. 接続PerlのCGIとXAMPP
- 17. HTTPサーバーとCGI処理
- 18. thttpdとCGIモードのPHP
- 19. UTF8ビン
- 20. CGIオープンデータベース
- 21. (CGI、PHP)
- 22. WSGIとCGIとは何ですか?
- 23. Java UTF8エンコーディング
- 24. スプリットUTF8 usig Preg_Split
- 25. UTF8実デコード
- 26. bulkloader Listproperty utf8
- 27. PHP UTF8デコード号
- 28. PHP utf8 intval
- 29. perl utf8破損
- 30. MySQL UTF8問題