2011/06/10

ユニコードの文字コードを調べる(国際化ドメイン名)

下記のURLの違いわかりますか?
素朴な疑問 http://example.com  http://еxample.com って表示がわかれるのかな?」

下記ページにコピーしてみると、実際のUnicodeでの表記がわかります。

最初のURLはよく使われるサンプル。
二番目のものはe(U+65)をキリル文字のе(U+435)に置換したものです。このような非ASCII文字を使ったドメイン名は国際化ドメイン名と呼ばれており、内部ではpunycodeと呼ばれるエンコードが行われています。
http://еxample.com -> http://xn--xample-2of.com/

迷惑メール等に含まれるURLはこのような偽装がされている可能性もあるため、原則として怪しいメールのリンクはクリックしない方が良いと思います。

2011/6/10時点で確認した範囲では、facebook、twitterはそのままURLを表示しますが、iphone上のTwitterアプリはpunycodeでの表示を行っていました。

2011/06/06

ユニコードの文字コードを調べる(絵文字)

GoogleとAppleが提唱したマッピングをもとに、携帯電話の絵文字がUnicode6に採用されました。Mac OSX Lionでは絵文字に対応するという噂もあり、絵文字はさけて通れない問題になりつつあります。

Googleのemoji4unicodeプロジェクト
emoji4unicode

Unicode6の正式規格
EmojiSources.txt

標準化により簡単に絵文字を使えると思いきや、Unicode6の定義は意外と曲者です。
Unicode6規格の問題は主に3点

  1. ベンダ固有の記号が符号化されていない
    • ドコモロゴ等は符号化されていないため、独自にPUAに割り当てる必要があります。
  2. 合字の使用
    • 一部の文字は単一のコードポイントではなく、複数のコードポイントによる合字で表現されています。
  3. 定義がShift JISベース
これに対して、emoji4unicodeに含まれるGoogleの定義は、すべての絵文字が定義されているだけでなく、それぞれに単一のコードポイントが割り当てられています。Unicode6という標準は魅力的ですが、内部コードとしてはGoogle PUAの方が向いているようです。

2011/05/29

ユニコード文字のコードを調べる

追記
Wicket版をGWTで作り直してしまいました。


Wicket + Guiceの勉強をかねてユニコード検索ページを作ってみました。WicketでJavaScriptを1行も書かずにAJAXしてます。

Unicode Infoのページ

開発環境

  • eclipse3.6
  • Apache Maven 3.0.2
  • Wicket 1.5 M3
  • Guice 3.0


Wicket
Web用のフレームワークとしてはWicketを使用しています。
XML設定は最小限で、ほとんどがHTML+Javaで完結するのが非常に書きやすいです。Jettyと組み合わせるとさくさく開発が進められます。
WicketではAJAXもサーバサイドで書けるのですが、AJAXを使うと強制的にStatefulなページになってしまいます。回避する方法がないわけではないのですが、AJAXするならサーバ側Wicket、クライアントjQueryの方がわかりやすい気がします。
また、今回のテーマである「補助漢字」の扱いにバグがあるようで、そのまま出力すると文字化けしました。今回はユニコード実体参照に変換することで回避しています。



実行環境

通常のServletとして作成したので、Amazon EC2のMicro Instance上にTomcat6をインストールして動作させています。本当はApp Engineで動かしたかったのですが、ちょっとハマったので断念しました。

2011/05/11

AWS Tips : availability zone割り当てはアカウントによって異なる

考えてみれば当たり前なのですが、AWSのavailability zoneに付いている名前は論理的なマッピングであり、物理的な割り当てはアカウントによって異なります。
availability zone間の通信は課金対象となるので、複数アカウントを使用する場合には注意が必要です。

AWS関連まとめ

2011/05/06

MVN Tips : Maven + Eclipse

Mavenでビルド環境を構築しても、開発用のIDEは必要です。
IDEとしてeclipseを使用している場合には、m2eclipseによりmavenと統合して使用することができます。主な機能は下記のものです。
  • 依存関係の管理
    • Maven Dependencyという機能により、POMに記述した依存関係をそのままeclipseから使用できます。もちろん、UnitTestも可能です。
      • さらに、JavaDoc、Sourceのダウンロードも行えます。
    • Workspace Resolutionという機能を使うと、依存関係に含まれるプロジェクトをeclipse上で開いている場合には、jar依存ではなく、プロジェクト依存として利用できます。
  • Profileの適用
    • プロジェクトにactiveにするProfileを登録できます。Profileを適用した状態でプロジェクトが構築されるので、開発用の設定などを切り替えるのに便利です。
  • POMからeclipseプロジェクトの設定
    • POMの記述からEclipseのプロジェクト設定を更新できます。
  • WTP Integration
    • Extraに含まれるWTP Integrationを使用すると、eclipse WTPプロジェクトをそのままMaven管理出来ます。
プラグインのダウンロードについてはこちらから。
m2eclipse

基本的には、下記をEclipse Update Sitesとして追加するだけです。

もともとはSonatypeとMavenプロジェクトの創始者であるJason van Zylが作った会社が開発していましたが、Eclipseに移管されました。