Javascript URLエンコードを文字コード指定でデコードする

Javascript

Javascript URLエンコードを文字コード指定でデコードする

JavascriptでURLエンコードしたり、デコードするのは標準で

 
 //エンコード
 encodeURI("変換したい文字列"); 
 //デコード
 decodeURI("エンコードされた文字列"); 

という関数がありますが、文字コード指定でエンコード・デコードできません。
私はちなみにEUC-JPでエンコードされた文字列をデコードすると、Firefoxで

 malformed URI sequence

というエラーが出てJavascriptの実行自体、そこで止まってしまうということになってしまいました。

しかし、次のライブラリを利用すれば、Javascriptで文字コード指定でURLエンコード・デコードできます。

Escape Codec Library: ecl.js
http://travel.han-be.com/ecl/Escape%20Codec%20Library%20ecl_js.htm

使い方は、上記のページに詳しいので、そちらを読んでください。

ただ、一点残念なのが、私が利用したい環境のEUC-JPだと、デコードの際に半角スペースが「+」になってしまいました。[sad]
というわけで、下記のように一旦+を半角スペースに置換してからデコードしています。

 var replaced_word = url_encoded_word.replace(/\+/ig," ");
 var decode_word = UnescapeEUCJP(replaced_word); 

Javascript Smarty 値を動的にjavascriptに渡す

Javascript
Smarty

Javascript Smarty 値を動的にjavascriptに渡す

php側

 $smarty->assign("service_item",$post_datas['service']); 
 $smarty->assign("count",5);

htmlファイル側

 <div id="count" title="{$count}"></div>
 <div id="service_item" title="{$service_item}"></div>

Javascript側

 
 var count = null;
 var service_item = null;
 
 $(document).ready(function(){
      count = document.getElementById('count').title;
      service_item = document.getElementById('service_item').getAttribute("title");
 });

Java 正規表現 半角英数字とハイフン、アンダースコアのみの判定

Android
Java

Java 正規表現 半角英数字とハイフン、アンダースコアのみの判定

半角英数字、ハイフン(-)、アンダースコア(_)の判定は

 [0-9a-zA-Z\\-\\_]+

です。

サンプルは下記の通り。

 String group_name = "abcde-_"; 
 if ( !group_name.matches("[0-9a-zA-Z\\-\\_]+")) {
        System.out.print("半角英数とハイフン、アンダースコアのみ入力できます");
 }

ちなみに、下記のやり方だと全角英数も通っちゃいます。

 [\\w+\\-_ ]+$

Java 文字列の比較

Android

Java 文字列の比較

Android開発のというよりもJavaで、という話ですが。
もとはPHPプログラマーな私は文字列の比較をするときに

 String hogehoge = new String("hogehoge");
 if(hogehoge=="hogehoge"){
    //続きの処理
 }

とかやってしまいますが、これだとJavaでは文字列の比較ができません。

 if(hogehoge.equals("hogehoge")){
    //続きの処理
 }

としないとダメなんですね。
よく間違えてしまうので、書いておきました。

↓参考
http://msugai.fc2web.com/java/equals.html

Java 文字列の時間を日付(カレンダー)型に変換

Java
Android

Java 文字列の時間を日付(カレンダー)型に変換

結構面倒だったので、サンプルコードです。

 //createdをストリングからCalendarに変換
 String created = "2013-08-15 21:25:32";
 private static final String DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";	
 SimpleDateFormat dateformat = new SimpleDateFormat(DATE_PATTERN);
 java.util.Date date = null;
 
 try {
 			
 	date = new java.util.Date( dateformat.parse(created).getTime());
 				
 	} catch (java.text.ParseException e) {
 	
 	Log.d("時間のパースエラー", e.toString());
 
  }
 				
 Calendar cal_created = Calendar.getInstance();
 cal_created.setTime(date);