UNICODE文字をTEXTBOXに表示するには? – プログラミング – Home

UNICODE文字をTEXTBOXに表...
 
通知
すべてクリア

UNICODE文字をTEXTBOXに表示するには?


ばいあん
 ばいあん
(@ばいあん)
ゲスト
結合: 22年前
投稿: 1
Topic starter  

UNICODEのファイルから読み込んで内容を
テキストボックスに表示したいのですがいまいちうまくいきません。
下の例の用にやると文字が化けてしまいうまく表示できません。
どなたかおわかりになられる方がいらっしゃったら教えてください。
よろしくお願いします。

<例>
Dim aaa as String *100

CommonDialog1.ShowOpen
Open (CommonDialog1.FileName) For Binary As #1
Get #1, 1, aaa
aaa = StrConv(aaa, vbFromUnicode)
Text1 = aaa


引用解決済
トピックタグ
yas0302
 yas0302
(@yas0302)
ゲスト
結合: 23年前
投稿: 37
 

もし全ての文字が化けてしまうのでしたら、
ファイルの先頭部分にUNICODEでない
何かがくっついていません?

文字列の途中から表示が化ける場合は、
化けている文字の直前に余分なものが
あるのではないでしょうか。

ためしに、

Dim a As String
Dim b As String

a = あいうえお0123456789ABC
b = StrConv(a, vbUnicode)
Open test_1 For Binary As #1
Put #1, 1, b
Close #1

として、UNICODEのファイルを作成してやると、
ばいあんさんのプログラムで正しく表示できますよ。

そして、

Dim a As String
Dim b As String

a = あいうえお0123456789ABC
b = StrConv(a, vbUnicode) & , & StrConv(a, vbUnicode)
Open test_2 For Binary As #1
Put #1, 1, b
Close #1

これでファイルを作成すると、途中から文字が
化けますよね。


返信引用
べーちゃん
 べーちゃん
(@べーちゃん)
ゲスト
結合: 23年前
投稿: 49
 

Unicodeでうまく表示できないということですが、
一口にUnicodeといってもいくつかのバージョンがあるようです。

といいますのも、私がSQLServerからUnicodeで抽出したスクリプトデータは
メモ帳では文字化けして正しく表示されないことがありました。
メモ帳自身もUnicode,Unicode Bigendian,UTF-8と3種類のUnicodeで
ファイルを保存できるようになっているので、このあたりが問題に
なっているということはないでしょうか?

yas0302さんのいわれているようにファイルにごみが入っているという
可能性がもっとも高いとは思いますが、もしそうでなければ
文字コード自体を疑ってみてもいいかもしれません。


返信引用
べーちゃん
 べーちゃん
(@べーちゃん)
ゲスト
結合: 23年前
投稿: 49
 

あれっ。ちょっと待ってください。

>UNICODEのファイルから読み込んで内容を
>テキストボックスに表示したいのですがいまいちうまくいきません。
><例>
>Dim aaa as String *100
>
>CommonDialog1.ShowOpen
>Open (CommonDialog1.FileName) For Binary As #1
>Get #1, 1, aaa
>aaa = StrConv(aaa, vbFromUnicode)
>Text1 = aaa

元の文字コードがUnicodeならなぜStrConvをかけているのですか?
VBではUnicodeとSystemのデフォルトコードページとの変換は
自動で行われるためこれだと逆に文字化けするように思います。
StrConvの行をとって実行してみられてはどうですか。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました