やじうまPC Watch

42へぇ。Wordで「打」から始まるテキストファイルを開くとコンバーターが要求される

 Windows版のWordで、Shift-JISの「打」(0x91C5)で始まり、2文字目以降に文字が続くテキストファイルを開くと、「このファイルを開くとコンバーターが必要です」というダイアログが表示されるという。

 実際に手元の環境やってみた。

「打」から始まり、2文字以降も内容があるテキストを作成
Shift-JISで保存
Wordで読み込んでみたところ、確かに再現された

 確かに文字コードをShift-JISで保存された「打」から始まり、2文字目以降も文字が続くテキストファイルを開くと、「このファイルは新しいバージョンの Microsoft Word で作成されているため、このファイルを開くにはコンバーターが必要です。Office.com からコンバーターをダウンロードしますか?」というダイアログが表示された。

 これはどういうことなのか。Microsoft Wordに詳しいJapan Office Client Support Blogの9月17日の投稿によると、多くのファイル形式では、先頭の数バイトでそのファイル形式を表わすため、Wordではファイルを開く際にそのファイルのバイナリデータの先頭数バイトを手がかりにファイル形式を判断している。

 ところが、テキストファイルはこのデータ部を持たず、テキストの情報をファイルの先頭バイトから格納する。そこでShift-JISで「打」をエンコードした場合は、0x91C5から始まることになるが、3バイト目以降にデータが続くと、Wordはテキストファイルではない別のファイル形式だとして認識。その認識されたファイル形式は現在サポートされているWordデスクトップアプリで開けない形式となっているため、コンバーターのダウンロードを促すようになるのだという。

バイナリエディタで「打」を含むShift-JISのテキストファイルを開いたところ

 ちなみにここでこのテキストファイルを開きたい場合は、先のダイアログで「いいえ」を選択すると、テキストファイルとして開くかどうか尋ねられるので、ここで「OK」を押せばテキストファイルとして開ける。また、Shift-JISではなくUTF-8などで保存すれば、ダイアログ自体が表示されることを回避可能だ。