Skip to main content
Known Participant
February 10, 2005
Question

内部コードに変換する方法しりませんか?

  • February 10, 2005
  • 3 replies
  • 1039 views
英語版WindowsXP上で、英語版FrameMakerで、
独自のルーチンで、Ansi のText ファイルを読み込んで、
F_ApiAddText() を使って Document に文字を入力すると、
ウムラウトのある文字が化けるのですが、
恐らく、内部コードに変換して表示する必要があると思うのですが、
どうやったらいいのでしょう?

ANSI String を s にいれて、エンコーディングを指定してコピー
したものを F_ApiAddText しても状況がかわりませんでした。

FontEncIdT feId = F_FontEncId((ConStringT) "FrameRoman" );
...
F_StrCpyNEnc( s2, s, 512, feId );
...

ちなみにに使ってるのは ISO Latin 1 の範囲の文字です。
    This topic has been closed for replies.

    3 replies

    _koma_Author
    Known Participant
    March 1, 2005
    いつもありがとうございます。 ymgcさま。
    ISO-Latin-1 の範囲は 128文字の範囲なので変換されかたを調べて変換テーブルを力技で作りました。でうまくいかないのが
    ISO-Latin-1 の 0x80 - 0xf5 へ変換してみましたが駄目でした。通貨記号は特殊な変換をしてるような気はします。
    0xA0 は コードページ(WIN32 GetACP())が異なる環境によって変わるような気がします。が7bitでいえば0x20 (つまり空白)に対応してるので実害はないのではないかと思われます。
    Participating Frequently
    February 19, 2005
    k-maru様。

    変換できない文字コードっていうのを具体的に提示するか、
    もう少し情報がないとレスは付かないと思いますよ…。

    変換できないっていうのは、
     ・結果が返ってこないのか
     ・期待する結果と違うのか
    のどちらですか?

    FrameMaker内部コードといっても、
    コードが同じでもフォントによって、異なる文字になったりしますよね?
    そんなのが影響してるんじゃないのかな?

    「FrameMaker の文字セット」のマニュアルあたりが参考になるのでは?と思います。
    _koma_Author
    Known Participant
    February 11, 2005
    FrameMaker の内部キャラクターコードを解析して
    ISO-Latin-1 から FM内部コード変換テーブルを作成してみたのですが、
    変換できない文字コードがいくつか
    ありました。

    それはなんで変換できないんだろう?