Programming Field - プログラミング Tips

RTF でのエスケープシーケンス「\」、特殊文字「}」と「表示」「急」etc.

RTF フォーマットでは、「\」のあとに命令などを指定することで色々な書式を指定することが出来ます。例えば「\par」は改行です。

また、「表示」という文字は Shift JIS コードで「0x95 0x5C 0x8E 0xA6」と表され、特に「0x5C」文字は「\」に一致します

この問題は Perl などでよくある問題ですが、RTF フォーマットのデータに直接「表示」などと書くと、やはり文字が化けてしまいます。

そこで、RTF では「\'xx」という形式を利用することで、16 進数を使って文字を入れることが出来ます。したがって、「表示」と入れたい場合は「\'95\'5c\'8e\'a6」とします。

RTF での問題はこれだけではなく、「急」という字でも化けが起こったりします。「急」には「\」はありませんが、その代わり「}」(0x7D)が含まれています。この文字はブロックを閉じる意味があり、場合よってはこの文字で RTF 文書が終了することを表してしまいます。やはり対処法は「\'8b\'7d」となります。

参考外部ページ: 0x5c問題 - プログラミング講座 - fuku研究所