Home / Apple / Mac / 【2026年最新版】MacのテキストエディットでRTFをHTMLでエクスポートしても表示が崩れる時の解決法完全ガイド

【2026年最新版】MacのテキストエディットでRTFをHTMLでエクスポートしても表示が崩れる時の解決法完全ガイド

※本ページにはプロモーション(広告)が含まれています

Macに標準搭載されている「テキストエディット」は、シンプルながら多機能なテキストエディタです。リッチテキスト形式(.rtf)で作成した文書をHTML形式にエクスポートすれば、そのままWebページとして公開できそうな印象を受けます。しかし実際にエクスポートしてみると、「フォントが変わってしまう」「改行が消える」「画像が表示されない」「文字化けする」といった表示崩れのトラブルに直面することがあります。本記事では、テキストエディットでRTFをHTMLにエクスポートしたときに表示が崩れる原因を8つのパターンに分けて徹底解説し、UTF-8の正しい指定方法、PagesやMicrosoft Wordといった代替ツールの活用法まで、実践的な解決策を完全網羅でお届けします。

Mac TextEdit Preferences Open Save HTML Encoding UTF-8 Re-Export Convert

この記事でわかること

  • テキストエディットがRTFとHTMLを扱う内部構造の仕組み
  • HTMLエクスポート時に表示崩れが発生する8つの原因パターン
  • 文字エンコード(UTF-8)を正しく指定して文字化けを防ぐ手順
  • HTMLサニタイズで失われるスタイル属性の見極め方
  • フォント埋め込み非対応への対処と代替フォント指定法
  • 画像をBase64変換またはファイル参照で正しく出力する方法
  • AppleScriptを使ったエクスポート自動化と一括変換のテクニック
  • Pages・Microsoft Word・他のサードパーティツールとの徹底比較
  • FAQ形式で実務でよくある7つの疑問への回答

テキストエディットがRTFとHTMLを扱う仕組み

テキストエディットは、Apple純正のテキスト編集アプリで、macOSに標準でインストールされています。一見すると単純なメモ帳のように見えますが、内部的にはCocoaフレームワークのNSAttributedStringというリッチテキスト表現を中核とした、高機能なドキュメントエディタとして設計されています。RTF形式は、このNSAttributedStringのフォーマット情報を比較的忠実に保持できる形式として採用されており、HTMLエクスポートはこのRTFを変換することで実現されています。

RTF(Rich Text Format)はMicrosoftが1987年に策定したフォーマットで、テキストにフォント・色・サイズ・段落・画像などの装飾情報を埋め込めるテキストベースの形式です。一方HTMLはWebブラウザで表示することを前提とした、タグベースのマークアップ言語であり、両者の表現できる情報には大きな差があります。テキストエディットはNSAttributedStringを介してRTFとHTMLを相互変換しますが、この変換の過程で情報のロスやレイアウトの再解釈が発生することが、表示崩れの根本原因となっています。

テキストエディットがHTMLを書き出すとき、内部では `-[NSAttributedString dataFromRange:documentAttributes:error:]` というメソッドが使われ、ドキュメント属性として `NSHTMLTextDocumentType` を指定して書き出されます。この処理ではCSSが自動生成され、`` タグの中にフォント情報が埋め込まれます。しかしフォント自体は埋め込まれず、参照名のみが書き出されるため、HTMLを開く環境にそのフォントがないと表示が変わってしまいます。

また、テキストエディットのHTMLエクスポートでは、文字エンコーディングのデフォルトがUTF-8ではあるものの、書き出し方法によっては `meta charset` タグが正しく付与されないケースがあり、結果としてブラウザがエンコーディングを誤認識して文字化けを起こすこともあります。さらに画像については、内部的にはNSTextAttachmentとして保持されており、HTMLエクスポート時には別ファイル(`.fileloc` フォルダ)に画像を切り出すか、もしくはBase64でインライン化するかが選択できますが、デフォルト設定では別ファイル形式となるため、HTMLファイル単体を別環境に持っていくと画像参照が壊れてしまいます。

HTMLエクスポート時に表示が崩れる8つの原因パターン

原因1: 文字エンコーディング(UTF-8)の不一致

テキストエディットでHTMLエクスポートしたファイルをブラウザで開いたとき、日本語が「縺」「繧」のような文字列になってしまうのは、文字エンコーディングの不一致が原因です。テキストエディットの保存設定で「エンコーディング」をShift_JIS(日本語(Mac OS))のまま保存してしまうと、ブラウザが標準的に解釈するUTF-8と異なる解釈になり、文字化けを起こします。HTMLヘッダーに `` が正しく挿入されない設定で保存した場合も同じです。

原因2: フォント埋め込み非対応によるレンダリング差異

RTFファイル内では「ヒラギノ角ゴシック」「游ゴシック」「Helvetica Neue」などのフォント情報が保持されますが、HTMLにエクスポートしたときフォント自体は埋め込まれません。代わりに `font-family` のCSSプロパティとして参照名のみが書き出されます。そのHTMLを別のMacやWindows、Linuxのブラウザで開くと、そのフォントが入っていない環境では代替フォントに置き換わり、文字幅やデザインが変わってしまいます。

原因3: 改行・段落構造の崩壊

RTFでは「段落」と「改行」が区別されており、それぞれ `\par` と `\line` という別の制御文字で表現されています。テキストエディットがHTML出力する際、段落は `

` タグに、改行は `
` タグに変換されるのが期待される動作ですが、実際には改行コードがCRLF/LFで混在していたり、空行をどう扱うかが曖昧だったりするケースで、HTMLの改行が消えたり余計な余白が入ったりします。

原因4: HTMLサニタイズによるスタイル除去

テキストエディットのHTMLエクスポートでは、CSSがインラインスタイルとして出力されますが、一部の装飾情報は変換の過程で「サニタイズ」されます。例えばRTFで設定した行間(行送り)が `line-height` プロパティに正しく反映されない、文字間隔(カーニング)が消えてしまう、特殊な箇条書きスタイル(全角の四角や三角など)が `