« Lionのテキストエディット.appの文字コードの仕様 | トップページ | LionにおけるLibreOfficeの動作 »

2011年7月21日 (木)

Mac OS X LionのSpotlightによる日本語テキストの内容検索




(追記2013/11/04:OS X 10.9 Mavericks では若干、仕様が変更になっている。「OS X MavericksのSpotlightによる日本語テキストの内容検索」を参照)





以下、2011年に書かれた OS X 10.7 Lion に関する記事(Mountain Lion もこれと同じ)。

プレーンテキストファイルの場合

プレーンテキストファイル(拡張子.txt、.pl、.php、.c など)は、Leopard 以降の OS X 上で作成したものであればどのような文字コードであってもヒットする(文字コードを指定するめたメタデータがつくから)。

それ以外の OS(Tiger、Windows、Linux)上で作成したものは(メタデータがついていないため)Shift JIS か UTF-8 のみヒットし、EUC-JP や JIS (ISO-2022-JP) ではヒットしない(Snow Leopard 以前と違い、BOM 無し UTF-8 でもヒットする)。

OS X 上であってもコマンドラインプログラム(vi、nanoなど )で作成したものは(メタデータがついていないため) Shift JIS か UTF-8 のみヒットする。

また、OS X 上で作成したプレーンテキストファイルを 一旦 Windows などに移してから OS X のハードディスクに戻したような場合、(メタデータがなくなってしまうため)やはり EUC-JP や JIS はヒットしなくなる。

HTML ファイルの場合

UTF-8 で書かれた .html ファイルは、文頭に DOCUTYPE 宣言もしくは <HTML> タグがあれば、文字コード指定がなくてもヒットする。

例:

<html>
何を言う?早見優?

Spotlight 検索で「何を言う?」を検索した場合、UTF-8 で書かれた上記の内容の .html ファイルはヒットする。

文字コードの指定があれば Shift JIS でも EUC-JP でも JIS (ISO-2022-JP) でもヒットする。文字コード指定のための <META> タグ以外のタグが全くなくてもヒットする。

例:

<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
何を言う?早見優?

Spotlight 検索で「何を言う?」を検索した場合、EUC-JP で書かれた上記の内容の .html ファイルはヒットする。

但し、Snow Leopard 以前とは少し異なり、文字コード指定のための <META> タグ以外のタグが全くない場合、UTF-8 で書かれた .html ファイルはなぜかヒットしない(バグなのか仕様なのか不明)。

また、これもバグの可能性が高いが、ISO-2022-JP の場合、ちゃんとした HTML 構造(<HTML> タグに始まり </HTML> に終わる。<META> タグは <HEAD> タグではさむ、など)をとっていて、なおかつ文字コード指定のための <META> タグで ISO-2022-JP を指定してあっても、ヒットしない。だが奇妙なことに、上記のように <META> 以外のタグが全くなければヒットする。

上記に関わらず、<META> タグ内で robots を noindex と指定すればヒットしなくなる。

文字コード指定がなく、文頭に DOCUTYPE 宣言もしくは <HTML> タグも書かれていない .html ファイルはどのような文字コードであってもヒットしない。


« Lionのテキストエディット.appの文字コードの仕様 | トップページ | LionにおけるLibreOfficeの動作 »