Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


44410 / 76735 ←次へ | 前へ→

【37344】Re:CSVファイルをUTF-8Nで作成したい
質問  みき  - 06/5/1(月) 13:12 -

引用なし
パスワード
   ▼Blue さん:
早速のご教示ありがとうございます。
BOMの削除方法等素人には勉強になることが多く早速活用させて頂きます。

先程の質問の内容にもう一つ初歩の初歩の質問があります。
それは、頂いたサンプルに以下を追加しました。
.WriteText "あいうえお"
.WriteText "正常?束"  <--追加行
既に文字化けして見えます。
「正常?束」は、EXCELシート上では文字化けをしていない簡体字で、
ダブルコーテーションの間にコピー&ペーストをして追加行を作りました。
また、xyzzyで確認する為にBOMを削除しないようにして(.position=3を0)
実行しました。
しかし、xyzzy上で開いた結果、「正常?束」と?マークがでて文字化けの状態(期待した簡体字ではない)です。
どのようにしたら期待した簡体字を正しく見ることが出来るのでしょうか?

何か基本的な点を理解していないような気もして、
1)コピー&ペーストの時にコード変換がなされてしまっうのか?
2)出力するテキストに貼り付ける(wkText = Cells(n, m).Value)時に、
何か考慮しなけらばならないのか?
のような、中国語を扱うときに理解していなければならない点がありましたらご教示お願い致します。


>UTF-8NはBOMなしのUTF-8コードになります。
>
>UTF-8コードのテキストはADODB.Streamオブジェクトを使えば出来ますので、
>そこからバイナリモードでファイルを開いてでBOMを削除して再度保存すれば
>UTF-8Nコードのテキストが出来ます。
>
>例)
>Const adTypeText = 2
>Const adTypeBinary = 1
>Const adSaveCreateOverWrite = 2 ' adSaveCreateNotExist = 1
>
>Dim bytData() As Byte
>
>With CreateObject("ADODB.Stream")
>  .Open
>  ' UTF-8に変換
>  .Type = adTypeText
>  .Charset = "UTF-8"
>  .WriteText "ABC"
>  .WriteText "あいうえお"
>  
>  ' 先頭のBOM取り
>  .Position = 0
>  .Type = adTypeBinary
>  .Position = 3
>  bytData = .Read
>  .Close
>
>  ' UTF-8Nコードのデータを保存
>  .Open
>  .Type = adTypeBinary
>  .Write bytData
>  .SaveToFile "任意のファイル名", adSaveCreateOverWrite
>  .Close
>End With

0 hits

【37342】CSVファイルをUTF-8Nで作成したい みき 06/5/1(月) 11:11 質問
【37343】Re:CSVファイルをUTF-8Nで作成したい Blue 06/5/1(月) 11:42 回答
【37344】Re:CSVファイルをUTF-8Nで作成したい みき 06/5/1(月) 13:12 質問
【37347】Re:CSVファイルをUTF-8Nで作成したい Blue 06/5/1(月) 13:44 発言
【37354】Re:CSVファイルをUTF-8Nで作成したい みき 06/5/1(月) 16:03 回答
【37356】Re:CSVファイルをUTF-8Nで作成したい よろずや 06/5/1(月) 16:30 回答
【37359】Re:CSVファイルをUTF-8Nで作成したい Blue 06/5/1(月) 16:57 発言
【37361】Re:CSVファイルをUTF-8Nで作成したい みき 06/5/1(月) 17:05 お礼

44410 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free