ひろこま Hack Log

プログラミングや機械学習などの知識を記録・共有します

RTF形式 (rich text format) をUTF-8に変換

f:id:twx:20190808192255p:plain
RTF形式 (rich text format) をUTF-8に変換

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というコマンドが使えるようです。

dag.wiee.rs

使い方は以下です。

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のフォローをお願いします。

Koma Hirokazu 's Hacklog ―― Copyright © 2018 Koma Hirokazu