yuu_nkjm blog
2011-07-30(Sat) [長年日記] 編集
[Servlet][Java] Servletで日本語のリクエストパラメータを取得する
下書き.未検証.暇な時にStringのバイト配列を出力させて,正しいか調べる.
GETによるリクエスト
ISO_8859_1の範囲だとOK
ab cd ↓(ブラウザがGET: UTF-8でエンコード) ab%20cd ↓(request.getParameter: ISO_8859_1でデコード) ab cd
HttpServletRequest.getParameterの時にバイト列から文字列に自動で変換されるが,この変換が間違っている.誤った変換を元に戻して(getBytes),正しい変換(new String(byteData, "UTF-8"))をし直す必要がある.
ウィキペディア ↓(ブラウザがGET: UTF-8でエンコード) %e3%82%a6%e3%82%a3%e3%82%ad%e3%83%87%e3%82%a3%e3%82%a2 ↓(request.getParameter: ISO_8859_1でデコード) 文字化けした何か ↓(getBytes: ISO_8859_1でエンコード) %e3%82%a6%e3%82%a3%e3%82%ad%e3%83%87%e3%82%a3%e3%82%a2 ↓(new String(byteData, "UTF-8")) ウィキペディア
POSTによるリクエスト
public class Sample extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
request.setCharacterEncoding("UTF-8");
String val = request.getParameter("name");
}
}
極めてスマートに文字化けが回避出来るのですが、このメソッドではリクエストボディに含まれるデータの文字コードしか設定できません。「POST」メソッドを使った場合にはクライアントから送られてくるパラメータはリクエストボディに含まれるので問題ありませんが、「GET」メソッドを使った場合にはパラメータはURIの部分に含まれています。その為「setCharacterEncoding」メソッドを使ってもパラメータの文字コードの設定は行えませんので注意してください。
[ツッコミを入れる]
2011-07-23(Sat) [長年日記] 編集
[Windows 7 (64bit)] Windows 7標準バックアップ機能で生成されるフォルダ
M:\MediaID.bin M:\Hoge(コンピュータ名) M:\WindowsImageBackup
コントロールパネルから呼び出せるバックアップ機能を使って,Mドライブにバックアップを取ったところ,上記の三つが作成された.
[ツッコミを入れる]
2011-07-22(Fri) [長年日記] 編集
[IntelliJ][PhpStorm][PHP][Python] JetBrains IntelliJ IDEA11.1の設定
下準備
- XAMPPなどでPHP環境を作っておく.
- Pythonのインタプリタもインストール
設定
- キーバインディングを変更する.Settings→KeymapからEclipseを選択する.
- カーソルを行末より後ろにいかないようにする.Settings Editorから'Allow placement of caret after end of line'オプションのチェックを消す.
一般的なプラグインのインストール
- 環境設定を共有する.「IntelliJ Configuration Server Plugin」をインストールすることで,複数のIntelliJ上で環境設定を共有することが出来る.インストールを終えIDEの再起動をすると,JetBrainsアカウントを使ってConfiguration Server経由で設定を共有するためのログインダイアログがでる.ログインに成功すると,下図のように右下の緑アイコンがでる.IntelliJ IDEA :: Settings Synchronizationを参考.

Python開発環境の設定
- phpの開発ができるようにする.Plugin-manager-> Browse repositoriesを選択する.「Python」をインストールする.
- メニューバーのプロジェクトの構成(Project Structure)を選んで,プロジェクトの設定画面をだす.Project SDKの欄でNewを押して,Python SDKを選択.パスとして,Pythonのインストールディレクトリ(C:\Python27\python.exe)を選択する.これはCreate New Projectのところでもできそう.
PHP開発環境の設定
- phpの開発ができるようにする.Plugin-manager-> Browse repositoriesを選択する.「PHP」「SmarterEditor」をインストールする.
参考ページ
[ツッコミを入れる]