投稿日 | : 2003/07/08(Tue) 16:11 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re: RichTextBoxでうまく表示できない |
> 「ソ」「マ」「ボ」
(中略)
> strRTHeader = strRTHeader & "{\rtf1\ansi\ansicpg932\deff0"
コードページ932、という事は、Shift_JIS ですよね。
この場合、上記文字を 文字コードで表してみると原因がわかります。
"ソ" = Chr(&H835C)
"マ" = Chr(&H837D)
"ボ" = Chr(&H837B)
そして、これらの文字の2バイト目に注目してみると、
Chr(&H5C) = "\"
Chr(&H7D) = "}"
Chr(&H7B) = "{"
なのです。(^_^;)
これらは、RTF中で特殊な意味を持つ文字ですから、
そのままRTF中に埋め込む事はできない、というわけです。
> もしくは回避方法等ご存知でしたら
RTF中にそのまま埋め込める文字は、
&H20≦X<&H80
の範囲の物に限られています。
&H00≦X<&H20
&H80≦X≦&HFF
の文字を使いたい場合には、文字を「エスケープ」させる必要があります。
具体的には、
『ソ』 → 「\'83\\」 または 「\'83\'5c」
『マ』 → 「\'83\}」 または 「\'83\'7d」
『ボ』 → 「\'83\{」 または 「\'83\'7b」
などのように書く事になります。
詳細は、MSDNライブラリの『Rich Text Format (RTF) Specification』にある、
[Far East Support] \ [Escaped Expressions]
の項を参照してください。