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

投稿日: 2006/11/09(Thu) 23:59
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe^3: テキストから文字を取得したいのですが

> > まず、それらの文字は、Unicode テキストファイル上では、どのようなバイナリ値になっていますか?
> 立方メートルが FF,FE,A5,33,

ん……? BOMが付いていますね。
1文字につき、1つのファイルなのですか?

> 平方メートルが FF,FE,A2,33,
> です。
それが本当なのだとしたら、元のテキスト自体が破損しています。
U+33A2 は、平方キロメートルのはずですし。


> > また、化ける件に関しては、Stream に取り込んだ際に、既に化けているのでしょうか。
> > それとも、Stream にまでは正常に取り込まれているものの、それを表示するときに
> > 化けているのでしょうか?
> そうです。Streamに取り込んだ際にすでに化けてしまっています。
それでは、その化けたバイナリ値を教えてください。

Stream にテキストを取り込んだ後、
 .Position = 0
 .Type = adTypeBinary
 バイト配列変数 = .Read(adReadAll)
のようにすれば、バイナリを得ることができます。


> HTMLファイルにはShift-JISを採用しています。
HTML への出力なので、"Shift-JIS" ではなく、"Shift_JIS" ですね。


> 数値参照で表示を考えているのですが、
数値参照にしたい文字が少ないなら、Replaceメソッドあたりを使う事になるでしょうが、
そうした文字が多いなら、一文字ずつ数値参照に変換しながら、Print # していく、とか。


ひとつひとつ数値参照に置き換えていく以外の方法を考えるとすると……MSHTML から
DOM で出力して、それを IPersistFile::Save するとか……かな?
(文字コードを指定できるのかどうかが微妙なので、無理かも)


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

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

- VBレスキュー(花ちゃん) - - Web Forum -