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の設定

下準備

  1. XAMPPなどでPHP環境を作っておく.
  2. Pythonのインタプリタもインストール

設定

  1. キーバインディングを変更する.Settings→KeymapからEclipseを選択する.
  2. カーソルを行末より後ろにいかないようにする.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」をインストールする.

参考ページ


トップ 最新 追記 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|