VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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]
の項を参照してください。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -