DUNS Number 文字化け

 プログラミング  Comments Off on DUNS Number 文字化け
Aug 222012
 

DUNS Number登録申請をすると、しっかり文字化けメールが送られてくる。このメールはBASE64とHTMLとISO-2022-JPの混合タイプ。PDFファイルにDUNS Numberが含まれた状態で復元可能。

メール内容復元

お役所らしい旧世代のもので送信しているのだろうか?こちらのApple Mailが悪いのかは不明である。DUNS Numberの修復は簡単。この文字化けはBASE64にエンコードされている。以下にメールサンプルの2箇所を色分け(緑とオレンジ)した。デコードをするとファイルにDUNS Numberが記述されたPDFファイルとして修復される。赤の箇所はオプション。

緑のBASE64デコード

こちらはJPGファイルになる。(不要・単なるWEBのバナーJPG)

  1. 以下のリンクを開く
  2. メールの緑の箇所をコピペ
  3. decodeボタン
  4. ファイル名をsample.jpgと書き換える

http://opinionatedgeek.com/dotnet/tools/Base64Decode/

オレンジのBASE64デコード

こちらはPDFファイル(本命・DUNS Numberが書かれているPDF)

  1. 以下のリンクを開く
  2. メールのオレンジの箇所をコピペ
  3. decodeボタン
  4. ファイル名をsample.pdfと書き換える

http://opinionatedgeek.com/dotnet/tools/Base64Decode/

赤の箇所のデコード

この箇所にはPDFファイルの本来の名前がエンコードされている。ファイル名まで知りたい場合は復元。

  1. 以下のリンクを開く
  2. メールの赤の箇所をコピペ(変換前文字列欄)
  3. decode_mime(変換前文字種)
  4. sjis(変換後文字種)
  5. 変換実行ボタン

http://seo.atompro.net/webtoolfree_strcnva_.html

メールサンプル

–=_mixed 3626764349257B21_=
Content-Type: multipart/related; boundary=”=_related 3667628434439257B21_=”

–=_related 3667628434439257B21_=
Content-Type: multipart/alternative; boundary=”=_alternative 3667628434439257B21_=”

–=_alternative 366768434349257B21_=
Content-Type: text/plain; charset=”ISO-2022-JP”

<途中略>

<br><font size=2 face=”sans-serif”>この度はDUNSナンバーをお申し込み頂き誠にありがとうございました。</font>
<br>
<br><font size=2 face=”sans-serif”>御社のDUNSナンバーを添付にて送信いたしますので</font>
<br><font size=2 face=”sans-serif”>ご査収のほどよろしくお願い申し上げます。</font>

<途中略>

–=_alternative 366743549257B21_=–
–=_related 36676445257B21_=
Content-Type: image/jpeg
Content-ID: <_2_034810580348084036456449257B21>
Content-Transfer-Encoding: base64

7T1Snp3I42pUlpVsbjLiyPFcxdx2nMluUOyzBeATdF2LN6/wC6n3I6
49E8jRq6Ww2KyUFjFm5LJka9qbhKJWTjvWsxEIdgAOHhm3Ljwp/Wf+bGg/u+rnJs8wnvonvppsEW
Dq52yt8P2SOGWwrh5l0ptvoloz+w+9bL7at8I5XzhPzRfil5Y/ql1zsMCbOss/4gsSJORkbIVkF0
GEjEKbO0UYjCCiOYXRN28cM9N3+6q62+uijfXRNSRcKtW0eeHf6mvsc9LvZz/tl/t1kdX3f6ws6o
gyI1Tdxlv6YU4v409L9OrQdtJvmylhP+59RuibfaZ7RfcTrD13Grv6qqYCuMHBhJ6hwla/XAbJrc
aeCz82aTnJCYFHKH9skkqzA79Hh5X9oQVhkoVK

–=_related 628434439257B21_=–
–=_mixed 628434439257B21_=
Content-Type: application/octet-stream; name=”=?ISO-2022-JP?B?jvWsxEIdgAOHh+9bL7at8I5m=?=”
Content-Disposition: attachment; filename=”=?ISO-2022-JP?B?jvWsxEId0ptvolozgAOHhm=?=
Content-Transfer-Encoding: base64

JVBEs5+WPLJNkIwMDZCQzg4Mi0xLMTYNCiUlRU9GDQo=7T1Snp3I42pUlpVsbjLiyPFcxdx2nMluUOyzBeATdF2LN6/wC6n3I649E8jRq6Ww2KyUFjFm5LJka9qbhKJWTjvWsxEIdgAOHhm3Ljwp/Wf+bGg/u+rnJs8wnvonvppsEW

Dq52yt8P2SOGWwrh5l0ptvoloz+w+9bL7at8I5XzhPzRfil5Y/ql1zsMCbOss/4gsSJORkbIVkF0
GEjEKbO0UYjCCiOYXRN28cM9N3+6q62+uijfXRNSRcKtW0eeHf6mvsc9LvZz/tl/t1kdX3f

–=_mixed 6456449257B21_=–

 Posted by at 19:46

SafariからMountain Lionに通知

 プログラミング  Comments Off on SafariからMountain Lionに通知
Aug 092012
 

Mountain Lionに搭載された通知機能をJavascript(JQuery)で活用する。Webサイト(HTML)からOSに通知する方法。トップシェアのChromeも対応。もちろんIEは対応していない。

Objective-Cでの話題は一旦置いておいて、JQueryでの対応方法。使いどころはアイデア次第だが、非同期で更新する仕組みやリロードする仕組みと連動すればデータ受信をもとに通知イベントを発生させる使い方もできる。大方、それなりに重いWEBアプリやクラウド経由の処理終了をお知らせするやタイムラグのあるネットワーク越しの相手から受信したデータを表示したタイミングでお知らせするのが自然な使い方ではないか。

JQueryの準備

JQueryファイルを入手しフォルダに格納。HTMLに記載。(全文は後半に掲載。)

<script src="js/libs/jquery-1.7.2.min.js"></script>
<script src="js/jquery.notify.js"></script>

イベントの準備

何はともあれボタンを押したら通知が起こるようにする。ここではaタグで用意。

<section>
<p><a href="#" class="button" id="call">Call</a></p>
</section>

クリック処理と通知発生

id=”call”のタグをクリックした時に通知が始まる。その処理は3段階。

  1. $.notifications.requestPermission ←通知許可を行う
  2. $.notifications.newNotification ← 通知を作成し通知オブジェクトを返す
  3. show() ← 通知オブジェクトを表示する(OSに通知)
<script type="text/javascript">

	$(document).ready(function() {

		$('#call').on('click', function() {

			$.notifications.requestPermission(function(){

				var title = $('#contents>h1').html();
				var content = $('#contents>p').html();
				var notify = $.notifications.newNotification('', title, content);

				if (notify!==false) {

					notify.show();

				};
			});
			return false;
		});
	});

	</script>



ソース全文

<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title></title>

</head>
<body>
	<section>
		<p><a href="#" class="button" id="call">Call</a></p>
	</section>
	<section id="contents">
		<h1>Blog Updated</h1>
		<p>This is new post.</p>
	</section>

	<script src="js/libs/jquery-1.7.2.min.js"></script>
	<script src="js/jquery.notify.js"></script>
	<script type="text/javascript">

	$(document).ready(function() {

		$('#call').on('click', function() {

			$.notifications.requestPermission(function(){

				var title = $('#contents>h1').html();
				var content = $('#contents>p').html();
				var notify = $.notifications.newNotification('', title, content);

				if (notify!==false) {

					notify.show();

				};
			});
			return false;
		});
	});

	</script>
</body>
</html>
 Posted by at 20:53