面倒で放っておいたはてなアイデアの説明

※別段、誰かが賛同してくれることを期待しているわけではないですが。
idea:2822

[不具合というか…] WindowsHatenabarの検索窓で「〜」「−」を検索すると内田百輭が検索される 関連:idea:902

っていうか、検索されているというか?これ?


はてなダイアリー&キーワードの基本機能として、扱う事が出来る文字のエンコーディングは「EUC-JP」であり、一部の「機種依存文字」を除けば日本語を書き表すには全然問題はない。表せなくても文字実体参照とか数値文字参照とかで表示は何とでもなる。
ただ、「いわゆる機種依存文字」以外にも困る文字はあるわけで…
問題はUnicode。特定の文字がJISで定義されている変換表と、(OSの)メーカが定義している変換表が異なる場合がある。(Javaだが、参考:http://www.ingrid.org/java/i18n/unicode.html )
上記参考URLを見ると判るとおり、「〜」はJIS(JIS X 0208JIS X 0221)の対応表とWindowsの対応表が異なっている。

  • 何個か文字は有るが、例として挙げるのは「〜」(wave dash)
    • JIS:U+301C(〜) : WAVE DASH
    • CP932:U+FF5E(~):FULL WIDTH TILDE

EUC-JP→Unicode(utf-8など)への変換時は、JISに従いU+301Cに変換する実装が多い。当然ながら。
*
で、たまたまではあるが、Hatenabarの検索窓で検索を行うと、はてな検索へは(EUC-JPではなく)utf-8で文字が送られる模様。「〜」をWindowsHatenabarから検索すると、0xEF,0xBD,0x9E、つまりUnicodeではU+FF5Eになる。(utf8を知っている人対象なので細かいことはパス。はてなのスタッフサイドでは知っている物と見なしますが…)
U+FF5Eで届いたデータを、キーワードの中から探すためにまたEUC-JPに戻そうとすると……。U+301Cで届いたデータなら「〜」に戻せるけれど、U+FF5Eではもう「〜」には戻せないわけです。
ってことで文字化けというか何というか、一般人が見ると奇妙な現象が起こります。

このあたりは、当てはまる文字なんて既に何年か前から分かり切っているので、idea:902 を出しています。
# これ、スクリプト系言語でよく使われているらしい(本当か?) iconv に期待して調べたけど、全然駄目だった。

*
ここから先は、今後の懸念。


で、今後は「キーワードをダイアリーから分離」とか、「はてなダイアリー自身を国際化」とかいう要望が検討されていって実装されるとしたら、まぁ昨今の情勢からしUnicode化は避けられないかと思います。っていうか間違いなくUnicode化だろうというか何というか。
※現状の文字の扱い

サービス 文字コード
人力検索 euc-jp
ダイアリー euc-jp
アンテナ euc-jp
カウンター euc-jp
ブックマーク utf-8
RSS utf-8
フォトライフ utf-8
イデア utf-8

最近の物は全てUTF-8で出力されています。


もし、現状のはてなキーワードが「EUC-JPからUnicodeへ単純移行」され、さらにidea:902がずっと実装されない状態だとすると、「〜」を含むキーワードは、Windowsユーザからは扱えなくなります。
と言うことを懸念していますが、まぁそのうち何とかなるだろう〜。(いい加減)