SQLの窓

2013年05月30日


Win8 ストア : UrlEncode と UrlDecode

System.Net.WebUtility を使用します。( Windows8 のサンプルコードの 『Push and periodic notifications client-side sample』内にある Helper.cs に使用例が少しあります ) 

内部コードにあわせて、UTF8 のみ文字列のまま変換できますが、他のキャラクタセットではいったんバイト配列に変換して処理する必要があります。
// Shift_JIS で UrlEncode された文字列
string str_sjis_urlencode = "%93%FA%96%7B%8C%EA%95%5C%8E%A6";
// バイト配列に変換
byte[] sjis_data1 = Encoding.GetEncoding("SHIFT_JIS").GetBytes(str_sjis_urlencode);
// バイト配列状態で UrlDecode
byte[] sjis_data2 = WebUtility.UrlDecodeToBytes(sjis_data1, 0, sjis_data1.Length);
// バイト配列を内部コード表現の文字列に戻す
string sjis_data3 = Encoding.GetEncoding("SHIFT_JIS").GetString(sjis_data2, 0, sjis_data2.Length);
Debug.WriteLine("Shift_JIS:" + sjis_data3);

// Shift_JIS の UrlEncode に変換したい文字列
str_sjis_urlencode = "日本語表示";
// バイト配列に変換
sjis_data1 = Encoding.GetEncoding("SHIFT_JIS").GetBytes(str_sjis_urlencode);
// バイト配列状態で UrlEncode
sjis_data2 = WebUtility.UrlEncodeToBytes(sjis_data1, 0, sjis_data1.Length);
// バイト配列を内部コード表現の文字列に戻す
sjis_data3 = Encoding.GetEncoding("SHIFT_JIS").GetString(sjis_data2, 0, sjis_data2.Length);
Debug.WriteLine("Shift_JIS:" + sjis_data3);

// UTF8 で UrlEncode された文字列
string str_utf8_urlencode = "%E6%97%A5%E6%9C%AC%E8%AA%9E%E8%A1%A8%E7%A4%BA";
string str_urldecode = WebUtility.UrlDecode(str_utf8_urlencode);
Debug.WriteLine("UTF8:" + str_urldecode);

// UTF8 で UrlEncode したい文字列
str_urldecode = "日本語表示";
str_utf8_urlencode = WebUtility.UrlEncode(str_urldecode);
Debug.WriteLine("UTF8:" + str_utf8_urlencode);


以下定義の表示
#region アセンブリ System.Runtime.Extensions.dll, v4.0.0.0
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.Extensions.dll
#endregion

using System;

namespace System.Net
{
	// 概要:
	//     Web 要求の処理時に URL をエンコードおよびデコードするためのメソッドを提供します。
	public static class WebUtility
	{
		// 概要:
		//     HTTP 伝送用に HTML エンコードされている文字列を、デコードされた文字列に変換します。
		//
		// パラメーター:
		//   value:
		//     デコードする文字列。
		//
		// 戻り値:
		//     デコードされた文字列。
		public static string HtmlDecode(string value);
		//
		// 概要:
		//     文字列を、HTML エンコードされた文字列に変換します。
		//
		// パラメーター:
		//   value:
		//     エンコードする文字列。
		//
		// 戻り値:
		//     エンコードされた文字列。
		public static string HtmlEncode(string value);
		//
		public static string UrlDecode(string encodedValue);
		//
		public static byte[] UrlDecodeToBytes(byte[] encodedValue, int offset, int count);
		//
		public static string UrlEncode(string value);
		//
		public static byte[] UrlEncodeToBytes(byte[] value, int offset, int count);
	}
}


posted by lightbox at 2013-05-30 20:37 | Win8 ストアアプリ | このブログの読者になる | 更新情報をチェックする

2013年05月27日


Android ADT : AsyncTask コードの取り出し( 匿名のインナー型 でその場で実行する )

AsyncTask は、abstract class です。継承して新たにクラスを作って処理するものだとは思いますが、AsyncTask が本来その場で書くつもりのものを非同期で処理する必要にせまられて仕方なく使うので、このような書き方でも動作すれのであれば、簡単に済ませられるので良いのでは無いかと思っています。

※ 取り急ぎ、実装したい場合はとにかく他の参照も final で設定しなおせば中で使えます。

まず、new Async とタイプして、CTRL+SPACE で候補の中の『匿名のインナー型』を選択します。



以下のように、ジェネリッククラスとしての型の引数が説明になっています



そこから、本来の型を設定して( 後から変更するのであれば、<Void,Void,Void> でもいいです)から、ブロック内にカーソルを持っていきます。



※ 『型』はインポートしている必要があるので、ここでは Drawable をインポートします



メニューの『ソース』から、メソッドのオーバーライド/実装 を選択して、必要なメソッドを選択します



処理ブロックが完成します



最後に必要な引数を execute メソッドに渡します



実際の実装コード

Android 4.2.2 : インターネット上の画像の表示 / AsyncTask<String, Void, Drawable>



posted by lightbox at 2013-05-27 16:51 | Android | このブログの読者になる | 更新情報をチェックする

Android ADT : ボタンのクリックコードの取り出し

最初の setOnClickListener を候補から取り出して、以下の状態になります。



その後、カーソル位置に new をタイプして CTRL+SPACE で次の候補を出して選択するとほぼ完成。



最後の行にセミコロンを追加すると完成です。





posted by lightbox at 2013-05-27 16:29 | Android | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり