東京の文京区は、時折雨も降るジメジメした天気。気温はそこまで高くないものの亜熱帯のような湿度がある日だが、インターネットを通じて世界の情報を知ることができる。
国際的な文字コード規格ユニコードを策定するThe Unicode Consortiumbの最新版となる「Unicode 17.0」の正式リリースを知った。

世界中の文字に一意の番号を割り当てるユニコード。異なるプラットフォームでの互換性を担保し、コンピューターの世界では欠かせない仕様を提供している。いまやコミュニケーションの世界でも欠かせない共通仕様のemoji(絵文字)の数々も発表されている。今後、各プラットフォームの対応により新しく加わるであろう絵文字はこちら(Unicode Emoji Subcommittee 委員長 Jennifer Daniel氏ブログ)で紹介されているが、各ブラウザやソフトウェアも対応してくれば、(U+1F603)のようにコピペでも表示できるようになる。最新版の「Unicode 17.0」では1918個だ。
○APIからの気象状況をPowerShellと絵文字で表示

灼熱極まる今夏の状況にAPIからPowerShellに気温を取得し、カスタマイズする日々を送る筆者であったが、このニュースを目にし、ふと

気象状況を絵文字で表示できないか?

そう考えた。OpenWeatherでは気象情報に対応するアイコンコードが細かく指定されており、レスポンスで返るJSONには以下のように気象状況と連動するiconやidが入っている。

"weather": [
{
"id": 500,
"main": "Rain",
"description": "小雨",
"icon": "10d"
}

ので、これに対応する$iconCodeを加えて、10dに該当する部分を$res.weather[0].iconで取得し、対応する絵文字を連想配列でカバーできそうな範囲で用意しておく。さきほど紹介したUnicodeのフルリストのsky & weatherのBrowserからテキストへコピペで絵文字は作れる。

$iconMap = @{
"01d" = "☀"
"01n" = ""
"02d" = ""
"02n" = ""
"03d" = "☁"
"03n" = "☁"
"04d" = "☁"
"04n" = "☁"
"09d" = ""
"09n" = ""
"10d" = ""
"10n" = ""
"11d" = ""
"11n" = ""
"13d" = "❄"
"13n" = "❄"
"50d" = ""
"50n" = ""
}

連想配列から$emoji = $iconMap[$iconCode]で絵文字を取得し、表示文字列を格納している$msgに以下のように加える。$emojiを温度の後の( )のなかで表示させる。


$msg = "東京都文京区の現在の気温: {0:N1}°C({1} )" -f $temp, $emoji

コードを実行すると、曇天の気象状況を表す☁マークがPowerShell上で表示されている。

.
編集部おすすめ