RTF形式とは
rich text formatのことで、テキストのサイズやフォントを変えられたり、文字に装飾を付けたりできる形式です。 MicrosoftのWordやMacのテキストエディタなどを思い浮かべてみるとわかりやすいかもしれません。
CUIで表示できない…
RTFはWord等のアプリケーションで読み込むタイプのファイルなので、CUIで表示させようとすると以下のように文字化けします。
$cat zoi.rtf {\rtf1\ansi\ansicpg932\cocoartf1671\cocoasubrtf500 {\fonttbl\f0\fnil\fcharset128 HiraMinProN-W3;} {\colortbl;\red255\green255\blue255;} {\*\expandedcolortbl;;} \paperw11900\paperh16840\margl1440\margr1440\vieww5820\viewh3900\viewkind0 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0 \f0\fs42 \cf0 \'8d\'a1\'93\'fa\'82\'e0\'88\'ea\'93\'fa\'82\'aa\'82\'f1\'82\'ce\'82\'e9\'82\'bc\'82\'a2}
↑はMacのターミナル上で cat
を実行した例です。
このファイルをUTF-8に変換して、CUI上でも表示できるようにしてみます。
コマンド「textutil」
textutil というコマンドを使えば、RTFをUTF-8に変換できます。ただし、textutilはMacOSのコマンドなのでLinuxには存在しません。Linuxではunoconvというコマンドが使えるようです。
使い方は以下です。
textutil -convert [変換先の形式] [変換したいファイル名] -output [変換後のファイル名]
[変換先の形式]
は以下の中から選んでください。通常のテキストにしたい場合は txt
でOKです。
対応形式 | 説明 |
---|---|
txt | プレーンテキスト |
html | HTML/XHTML |
rtf | リッチテキスト |
rtfd | 添付書類付きリッチテキスト |
doc | Word文書(Word 97-2004) |
docx | Word文書(OOXML/Word 2007以降) |
wordml | WordprocessingML(XML) |
odt | OpenDocument(ODT、OpenOffice.orgなど) |
webarchive | Webアーカイブ(Safariの保存形式) |
試しに先程のRTFファイルを変換してみます。
$ textutil -convert txt zoi.rtf -output zoi.txt
表示してみます。
$ cat zoi.txt 今日も一日がんばるぞい
文字化けすることなく表示できました。
ついでに文字コードも見てみます。
$ nkf -g zoi.txt UTF-8
UTF-8です。
以上、RTF形式 (rich text format) をUTF-8に変換する方法をまとめました。良い記事だと思っていただいた方は、以下の「★+」ボタンのクリック、SNSでのシェア、「読者になる」ボタンのクリック、Twitterのフォローをお願いします。