
中国文字のVisual Basic6での取り扱いについて教えてください。
環境 Windows7、Visual Basic6、IE8
秀丸エディタなどでUTF-8モードとして、「书信」などの漢字(左の字が中国簡体字、右の信は日本文字と同じ)をファイルに入れておき、これを読み取って、HTML文で表示できるようにするプログラムを作ろうとしています。
Visual Basic6の変数に入れるとUnicodeとして処理されるので実行中に止めて表示させても、またHTML文書で表示させても”???”と文字化け状態になります。
そこでOKwebにてコード変換を教えていただいたのでUnicodeをUTF-8に変換すると「?信」となります。
何か変ですがこれをさらにUTF-8からUniCodeに変換すると”???”と表示されるようになります。
中国簡体字の部分だけがどうしても表示できません。どうしたら表示できるのでしょうか?
なお本件とは直接の関係はありませんが、HTMLソースを秀丸で表示させて「书信」を張り付けると、ソースでも、またブラウザ・IE8で表示させても正しく「书信」と表示されます。
No.2ベストアンサー
- 回答日時:
VB6の標準コントロールに日本語や中国語の混在文を
表示することはできないので、UNICODEに対応した
コントロールに表示するようにします。
二つのコントロールに同時に表示してみます。
準備:
プロジェクトからコンポーネントを選択し、
Microsoft Internet Controls
msrtedit 1.0 Type Library
の二つにチェックを入れて適用、OKとします。
フォームにコマンドボタンを一つ、
WebBrowserコントロールとAMSREditを
フォームに設定します。
以下のコードを設定してください。
なお、test.txtはプロジェクトと同じディレクトリ
においているとしています。他のディレクトリに
おいている場合はフルパスを設定してください。
Private Sub Command1_Click()
'RichEditに表示
With New ADODB.Stream
.Type = 2
.Charset = "UNICODE"
.Open
.LoadFromFile (App.Path & "\test.txt")
AMSREdit1.text = .ReadText(-1)
End With
'WebBrowserに表示
WebBrowser1.Navigate App.Path & "\test.txt"
End Sub
ありがとうございました。実は、ちょうどいま私も、魔界の何とかさんの方法によって、似た方法で成功したところでした。
2週間ばかり、コード変換などいじくりまわしていたのですが、ADODB.Streamで読み込むだけでうまくいく、ただし、VB6内で表示させてもUTF-8での表示はされないので?になったままである、ということが分りました。
お目を煩わせた皆様にも感謝申し上げます。私のやった方法を書いておきま
す。
Microsoft ActiveX Data Objects 2.5以上をチェックしておく。
Dim Src As Object
Dim Dst As Object
Dim buf As String
Dim iFile
Dim Hbun 'HTMLの文章
iFile = App.Path & "\xyz.txt" 'UTF-8の入っているファイル
'●Streamオブジェクトを生成し、UTF-8ファイルを読み込ませる
Set Src = CreateObject("ADODB.Stream")
Src.Open
Src.LoadFromFile iFile ' "C:\UTF-8の元ファイル.TXT"
Src.Charset = "UTF-8"
'●UTF-8データを、VB標準の文字列型として読み込む
buf = Src.ReadText() '変数bufに全データが入っている
Src.Close
Set Src = Nothing
'●文書処理
(bufを処理する/省略)
'●処理結果をUTF-8ファイルとして吐き出す
Set Dst = CreateObject("ADODB.Stream")
Dst.Open
Dst.Charset = "UTF-8" '異なる文字コードのStreamに吐き出してもOK
Dst.WriteText Hbun
Dst.SaveToFile App.Path & "\HTML結果.htm", adSaveCreateOverWrite
Dst.Close
Set Dst = Nothing
HTML結果.htmのファイルをクリックして、ブラウザ・IEで表示させるとUTF-8の文字(中国簡体字)が表示されていました。
No.1
- 回答日時:
ファイル読み込みの処理を見直す必要がありそうです。
http://d.hatena.ne.jp/replication/20091006/12547 …
サンプルはVBSでの方法ですが、VB6でもほぼそのままで行けるんじゃないかと。
この回答への補足
質問者です。スミマセンが・・・
教えていただいたURLで「ファイル読み込み用のクラスを作成する」で下記を書いてありますが、これはVisual Basic6のどこに張り付ければいいのでしょうか?
Option Explicit
Class UTF8FileReader
Private name, errNo, errDesc
(以下省略)
ありがとうございました。残念ながらクラスを理解していないロートルプログラマには利用できませんでした。
どこにどう置けばいいのかもわかりませんでした。
やっぱり無理かな~・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Windows 8 メモ帳による文字コード変換 2 2022/09/01 18:38
- Excel(エクセル) エクセルの数式について教えてください。 7 2023/06/18 10:16
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- Windows 10 パソコン初期化の件です 2 2022/06/05 11:05
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの画像にツールチップ...
-
テキストボックス(VBA)でEnter...
-
MSFlexGrid
-
ユーザーフォームに日付を表示...
-
VBからエクセルのテキストボ...
-
コンボボックスの高さを変更し...
-
MSHFlexGrid および MSFlexGrid...
-
VBのShapeコントロールを使用し...
-
ASP.NET : FormView内コントロ...
-
ListViewでのリスト表示(初歩...
-
PictureBoxの背景色変更(VB.NET)
-
リストコントロールのデータの...
-
C#でユーザコントロールのプロ...
-
C# アプリ終了時に設定を記憶...
-
VBで、tableの列を動的に増やす...
-
エクセル入力規制リスト行数
-
VC++でエクセルのような表
-
C# のテキストボックスデザイン...
-
ADOのCursorLocationプロパティ
-
MFCでbitmapを背景にしてstatic...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックス(VBA)でEnter...
-
Wordテキストコントロールが未...
-
エクセルの画像にツールチップ...
-
ユーザーフォームに日付を表示...
-
C# TEXTが空白であるLABELは何...
-
エクセル入力規制リスト行数
-
MSFlexGrid
-
コンボボックスの高さを変更し...
-
ACCESS2010 ActiveXコントロー...
-
Enabled=Falseのテキストボック...
-
VB6でLabelの最前面にText Box...
-
ADOのCursorLocationプロパティ
-
DataGridViewで行の展開みたい...
-
checkbox付きListViewで デフ...
-
VB2005 コードでのコントロー...
-
チェックボックスの文字色の変え方
-
VB6でPNGファイルを扱うには?
-
PictureBoxの背景色変更(VB.NET)
-
VB.NETで縦書表示をしたいので...
-
MFCでbitmapを背景にしてstatic...
おすすめ情報